resolver does not work
J Carter
jordanc.carter at outlook.com
Tue Apr 18 19:30:26 UTC 2023
Hi,
On 18/04/2023 13:58, mailinglist at unix-solution.de wrote:
> Hello,
> I have a nginx proxy in front of systemd-nspawn containers.
> The IP's of the containers are dynamic.
>
> When I start nginx *after* the containers it works.
> When the IP of the container is changed while nginx is running i get a
> "Bad Gateway" erro
>
> The config looks like:
>
> server {
> server_name foobar.example.com
> ...
> location / {
> resolver 127.0.0.53 valid=10s;
> ...
> proxy_pass http://container;
You need to use a variable in the proxy_pass here instead to do dynamic
proxy pass. This force nginx to re-resolve the hostname. The variable's
value should be set the target hostname (looks like it's 'containers'
from your config).
something like
set $container_hostname 'containers';
proxy_pass http://$containers_hostname;
Note, you can't target an upstream server group with this technique - it
has to be a hostname that the dns resolver returns.
If you need more advanced re-resolving, such as the ability to use
upstream server groups and resolve servers within it, NGINX Plus has
this feature.
In fact the patches from NGINX Plus that do the dynamic re-resolving are
already on the devel mailing list - just not integrated.
https://mailman.nginx.org/pipermail/nginx-devel/2023-February/4MCLSVRK7EX6DNKHFZN6CA4SKZUSA3GA.html
So it can also be obtained by comping from source with that set of
patches applied.
This is another alternative upstream resolver - although not as good, as
it requires requests to initiate a re-resolve.
https://www.nginx.com/resources/wiki/modules/domain_resolve/
> }
> }
>
> nginx is 1.1.18 so it should work as documented in
> http://nginx.org/en/docs/http/ngx_http_core_module.html#resolver
> The workaround there
> https://stackoverflow.com/questions/42720618/docker-nginx-stopped-emerg-11-host-not-found-in-upstream/52319161#52319161 doesn't work.
>
> I have also try to config a upstream backend and the resolver in the
> server part or in the http part.
> The errors are: "upstream timed out" or "container could not be resolved
> (3: Host not found)"
>
> Whats wrong there?
> Best Regards
> _______________________________________________
> nginx mailing list
> nginx at nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx
More information about the nginx
mailing list