systemd: nginx não resolve as entradas / etc / hosts no momento da inicialização

2

Usando o Debian 9, o comportamento do systemd é o seguinte:

  • No momento da inicialização, o nginx não parece ler /etc/hosts e falhou ao iniciar
  • Após a inicialização, quando o comando systemctl start nginx está funcionando corretamente

Nota: o arquivo /etc/hosts está correto e permanece intacto durante todos os testes.

Após pesquisar por um tempo, tentei iniciar systemd-resolved antes do nginx. Não há impacto.

Oct 13 11:14:01 server-dev systemd-resolved[466]: Positive Trust Anchors:
Oct 13 11:14:01 server-dev systemd-resolved[466]: . IN DS 19036 8 2 49aac11d7b6f6446702e54a1607371607a1a41855200fd2ce1cdde32f24e8fb5
Oct 13 11:14:01 server-dev systemd-resolved[466]: . IN DS 20326 8 2 e06d44b80b8f1d39a95c0b0d7c65d08458e880409bbc683457104237c7f8ec8d
Oct 13 11:14:01 server-dev systemd-resolved[466]: Negative trust anchors: 10.in-addr.arpa 16.172.in-addr.arpa 17.172.in-addr.arpa 18.172.in-addr.arpa 19.172.in-addr.arpa 20.172.in-addr.arpa 21.172.in-addr.arpa 22.172.in-addr.arpa 23.172
Oct 13 11:14:01 server-dev systemd-resolved[466]: Using system hostname 'server-dev'.
Oct 13 11:14:01 server-dev systemd-resolved[466]: Switching to system DNS server 192.168.1.1.
Oct 13 11:14:01 server-dev shorewall[465]: Compiling using Shorewall 5.0.15.6...
Oct 13 11:14:01 server-dev systemd[1]: Started Network Name Resolution.
Oct 13 11:14:01 server-dev systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 13 11:14:01 server-dev systemd[1]: Reached target Multi-User System.
Oct 13 11:14:01 server-dev systemd[1]: Reached target Graphical Interface.
Oct 13 11:14:01 server-dev systemd[1]: Starting Update UTMP about System Runlevel Changes...
Oct 13 11:14:01 server-dev systemd[1]: Started Update UTMP about System Runlevel Changes.
Oct 13 11:14:01 server-dev nginx[502]: nginx: [emerg] host not found in upstream "server-dev.com" in /etc/nginx/sites-enabled/default:33
Oct 13 11:14:01 server-dev nginx[502]: nginx: configuration file /etc/nginx/nginx.conf test failed
Oct 13 11:14:01 server-dev systemd[1]: nginx.service: Control process exited, code=exited status=1
Oct 13 11:14:01 server-dev systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Oct 13 11:14:01 server-dev systemd[1]: nginx.service: Unit entered failed state.
Oct 13 11:14:01 server-dev systemd[1]: nginx.service: Failed with result 'exit-code'.

Alguma sugestão?

    
por Robert 12.10.2017 / 17:35

1 resposta

0

Eu encontrei uma solução de trabalho, ela está vinculada à configuração do proxy nginx . Não estou claro sobre os impactos, fique à vontade para comentar ou propor uma solução melhor.

  1. Instale o dnsmasq

  2. Adicione um resolvedor de nome de domínio na configuração nginx

server {
# redirect DNS requests to local dnsmasq
resolver 127.0.0.1;

# without these 2 lines, nginx does not resolve name correctly
set $mt_proxy_from "http://server-dev.com:8000";
set $mt_proxy_dest "https://server-dev.com";
[...]
location / {
# Proxy configuration
proxy_pass $mt_proxy_from;
proxy_read_timeout 90;
proxy_redirect $mt_proxy_from $mt_proxy_dest;
}}

Eu não gosto dessa solução porque não parece eficiente:

  • Instale o dnsmasq e adicione um resolvedor para os sons nginx OK
  • Adicionar variáveis dinâmicas NGINX para resolver os nomes dinamicamente (não está claro quando?) parece estranho porque os endereços locais são fixos

Pergunta: existe alguma maneira de fazer algo limpar ?

  • Configure os endereços IP em /etc/hosts
  • Fazer o NGINX resolver os nomes de acordo com /etc/hosts no tempo de inicialização do systemd?

Fontes:
link
link

    
por 14.10.2017 / 07:10