﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	uname	nginx_version
658	"Implement new type of ""resolver"" -- ""system"" [for Docker usage]"	Артём Скорецкий		"It would be great if I could use ""system"" resolver for converting DNS name into IP. That would make usage of nginx inside Docker way easier.

When you use dynamic resolving (see example below) you have to set up your DNS server IP by ""resolver"" parameter.

It is fine for the most of the cases but in some setups (e.g with Docker) you don't have a dedicated DNS server but have resolving configured on your machine (using /etc/hosts, /etc/resolv and so one). Yes, my DNS names are not public, so I cannot use 8.8.8.8 or whatever public DNS.

That brings us to idea to use the same nginx code that does static resolving on nginx.conf parsing -- the one that is using system function to resolve it.

Since you already have dynamic name resolving (so you solved all surrounding issues like non-blocking resolving, etc.) it seems to be a minor change to use another function for resolving.

My current config (not valid!):

{{{
server {
    listen 80;
    server_name ~(?P<project>[^.]+)\.localhost$;
    location / {
        proxy_pass http://$project:8000;
    }
}
}}}

All projects have entry in /etc/hosts generated by Docker on run.

Ideal solution:
{{{
server {
    listen 80;
    server_name ~(?P<project>[^.]+)\.localhost$;
    resolver system; # here is the trick
    location / {
        proxy_pass http://$project:8000;
    }
}
}}}"	enhancement	new	minor		nginx-core	1.7.x		docker dns resolve system		Linux 2b5fbf195b05 3.16.4-tinycore64 #1 SMP Thu Oct 23 16:14:24 UTC 2014 x86_64 GNU/Linux	"nginx version: nginx/1.7.7
built by gcc 4.7.2 (Debian 4.7.2-5) 
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_spdy_module --with-cc-opt='-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2' --with-ld-opt='-Wl,-z,relro -Wl,--as-needed' --with-ipv6"
