// EDIT: é meu servidor de desenvolvimento local
Eu tenho um servidor PHP integrado em execução na porta 8000 para host somehost.dev
. Quero que o nginx faça proxy somehost.dev
da porta 80 para 8000. Minha configuração:
server {
listen 80;
server_name *.dev;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://$host:8000$uri;
proxy_redirect off;
}
}
Obtendo erro:
[error] 30106#0: *1 no resolver defined to resolve somehost.dev, client: 127.0.0.1, server: *.dev, request: "GET /favicon.ico HTTP/1.1", host: "somehost.dev", referrer: "http://somehost.dev/admin"
O que eu faço de errado?
Responder1
Adicione resolver 127.0.0.1;
à sua configuração, substituindo 127.0.0.1 pelo(s) seu(s) servidor(es) DNS na sua configuração se você não estiver executando o DNS localmente.
Informações do resolvedor Nginx:
Syntax: resolver address ... [valid=time] [ipv6=on|off];
Default: —
Context: http, server, location
Configura servidores de nomes usados para resolver nomes de servidores upstream em endereços, por exemplo:
resolver 127.0.0.1 [::1]:5353;
Um endereço pode ser especificado como um nome de domínio ou endereço IP e uma porta opcional (1.3.1, 1.2.2). Se a porta não for especificada, a porta 53 será usada. Os servidores de nomes são consultados em rodízio.
Antes da versão 1.1.7, apenas um único servidor de nomes podia ser configurado. A especificação de servidores de nomes usando endereços IPv6 é suportada a partir das versões 1.3.1 e 1.2.2.
Por padrão, o nginx procurará endereços IPv4 e IPv6 durante a resolução. Se a procura de endereços IPv6 não for desejada, o parâmetro ipv6=off poderá ser especificado.
A resolução de nomes em endereços IPv6 é suportada a partir da versão 1.5.8.
Por padrão, o nginx armazena em cache as respostas usando o valor TTL de uma resposta. Um parâmetro opcional valid
permite substituí-lo:
resolver 127.0.0.1 [::1]:5353 valid=30s;
Antes da versão 1.1.9, o ajuste do tempo de cache não era possível e o nginx sempre armazenava respostas em cache por 5 minutos.
Syntax: resolver_timeout time;
Default: resolver_timeout 30s;
Context: http, server, location
Define um tempo limite para resolução de nomes, por exemplo:
resolver_timeout 5s;