How did nginx resolve names?

Francis Daly francis at
Sun Mar 7 11:24:06 UTC 2021

On Fri, Mar 05, 2021 at 03:09:34PM +0100, basti wrote:

Hi there,

> Today I had the problem, that nginx run into "504 Gateway Time-out" when the
> first nameserver in /etc/resolv.conf did not answer.
> The php application is query some names (db-server for example).
> Did nginx use nsswitch?

Very roughly: if nginx sees a hostname that matters in the config file,
nginx will use the system resolver at start-up time to turn that into
an IP address, and will never resolve it again.

If nginx instead sees a hostname at request-processing time, it will
use whatever "resolver" was configured in the nginx config file.

nginx-at-startup does not use nsswitch directly; it uses your system
resolver, and *that* might use nsswitch -- nginx does not care.

nginx-at-request does not use anything from the system resolver.

And: if the issue is that your php script is doing some name resolution,
then nginx will not be involved in that -- your php will do whatever
your php is configured to do -- probably something that your favourite
search engine will mention when requesting "php hostname resolution".


Francis Daly        francis at

More information about the nginx mailing list