DEV Community

Discussion on: Série Nginx #3: Conhecendo as diretivas

Collapse
 
urielsouza29 profile image
Uriel dos Santos Souza

Oii!
Se sabe me dizer se é um bug ou erro meu em configuração do Nginx.
Tenho um VPS com 4 sites apenas!

2 com PHP já antigos e funcionando desde sempre com Nginx.

2 novos em node.

Mas acontece algo interessante.
Quando coloco o arquivo de configuração

siteEmNode.com.br
E dentro coloco todas as info corretas
Uso o Nginx como proxy no caso do Node.
Testo a config. Não tem erro.
Crio o link simbolico e restarto o nginx.

Ai vou acessar a URL siteEmNode.com.br
E aparece outro site que esta no meu server.
segundositeEMphp.com.br

A URL esta correta. E o site não!

Não tem erros. Ta tudo 100% correto.
E não aparece o site correto.

Então eu, vou lá e mudo siteEmNode.com.br para
default, crio o link simbólico, acesso o site siteEmNode.com.br
E aparece corretamente! Perfeito.

Ai eu fui lá e mudei o arquivo de default para > siteEmNode.com.br, criei o link simbólico.
E magicamente funcionou

Tive que por mais um site em node.
Deu o mesmo problema. Mas agora ainda não mudei default o nome do arquivo para o nome do site(por organização)

Se sabe me dizer se pode ser um erro de configuração
ou algum problema no nginx.
Pq uso PHP(servidor normal) e node(proxy)?

Abraços

Collapse
 
valdeirpsr profile image
Valdeir S.

Olá!!

É necessário verificar se o link simbólico foi criado no lugar correto na primeira vez (acontece).

Se você utilizar listen 80 default_server; em um dos arquivos de configuração, o Nginx considerará que todas as URL que apontem para o IP do servidor carreguem-no caso a URL não seja encontrada em outro servidor virtual.

Acho que fica mais fácil explicar o passo a passo.

  1. O cliente acessa "siteEmNode.com.br";
  2. O Nginx procurará um servidor virtual que contenha essa URL acessada;
  3. Se o Nginx encontrar o servidor virtual, ele aplicará as configurações dele;
  4. Se o Nginx não encontrar o servidor virtual, ele irá carregar o servidor padrão, que tem a flag default_server na diretiva listen.
  5. Se o Nginx não encontrar o servidor padrão, ele irá carregar o primeiro servidor virtual carregado.

"Tenho certeza que o symlink foi criado corretamente"

Neste caso, pode ser problema com cache do navegador ou CDN (CloudFlare, Akamai, Sucuri etc)

"Não é. Limpei os caches, habilitei o modo de desenvolvimento e estou no modo anônimo/privado do navegador"

Aí é um pouco mais complexo. Recomendo configurar o log de erro para o modo debug e verificar como o Nginx está carregando os arquivos de configuração.

  1. Verifique se o Nginx está carregando seu arquivo com nginx -T;
  2. Adicione a diretiva error_log /var/log/nginx/debug.log debug; no contexto http;
  3. Reinicie o Nginx;
  4. Verifique os logs.
Collapse
 
urielsouza29 profile image
Uriel dos Santos Souza

Só uso a porta 443. Nunca a 80.
Ma irei ver melhor tudo que vc falou.
Obrigado!