Atualmente, tenho um vhost rodando no Nginx para foo.domain.com e tudo funciona muito bem.
Criei um novo arquivo para um novo subdomínio que desejo adicionar chamado bar.domain.com. Eu uso as mesmas configurações para ambos.
Quando reinicio o Nginx, recebo
Restarting nginx: nginx: [warn] conflicting server name "" on 0.0.0.0:443, ignored nginx.
Quando vou para bar.domain.com, vejo o que devo ver, mas quando vou para foo.domain.com, vejo a página à qual bar.domain.com está vinculado.
Foo
upstream php-handler {
server unix:/var/run/php5-fpm.sock;
}
server {
listen 80;
server_name foo.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate [path_foo]/cacert.pem;
ssl_certificate_key [path_foo]/privkey.pem;
root [path]/foo;
...
}
Barra
server {
listen 80;
server_name bar.domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443;
ssl on;
ssl_certificate [path_bar]/cacert.pem;
ssl_certificate_key [path_bar]/privkey.pem;
root [path]/bar;
}
Onde eu estou errando?
nginx
ssl
virtualhost
RockJake28
fonte
fonte
server_name
na configuração SSL (443).listen 443
em cada servidor adicionarserver_name [foo/bar].domain.com
?Respostas:
Parece-me que seus blocos https também precisam de nomes de servidor especificados, por exemplo,
fonte
Você também pode ter arquivos adicionais aos
/etc/nginx/sites-available/<site-name>
quais está vinculado/etc/nginx/sites-enabled/<site-name>
.As configurações nesses arquivos podem entrar em conflito com o
/etc/nginx/sites-available/default
arquivofonte
Eu tive um problema semelhante quando acidentalmente tive o nome de servidor duplicado:
Corrigido alterando-o para:
fonte
server_name
; Eu tenho essa configuração há anos e nunca me preocupei muito com essa mensagem de erro. Acontece que eu estava iniciando erroneamente um vhost que deveria ser apenas um modelo 😮Além disso, verifique cada arquivo em
/etc/nginx/conf.d
busca de duplicatas.No meu caso,
nginx -t
passei nos testes - recebi essa mensagem de erro ao tentar iniciar o nginx.Meus
/etc/nginx/sites-enabled
arquivos estavam livres de duplicatas de domínio (nome do servidor) e tinham apenas 1 referência aserver_default
(e semlocalhost
duplicatas)Em vez disso, havia 2 arquivos em
conf.d
que ambos referenciavam um domínio específico (ou seja, 2 arquivos tinham uma linha como:,servername mydomain.com
onde um dos nomes de domínio estava listado em 2 arquivos).Minha solução: verifique se todos os arquivos
conf.d
fazem referência apenas a qualquer valor específicoservername
(nome de domínio) uma vez, no máximo.( infelizmente, depois de corrigir o problema acima, agora recebo:
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
mensagens de erro quando tento reiniciar o nginx.)update : FYI, Re: ...
Address already in use
mensagem de erro acima:Tudo o que eu tinha a fazer era
sudo fuser -k 80/tcp
, em seguida,service nginx restart
trabalhou como um encanto!Encontrei a resposta aqui: https://easyengine.io/tutorials/nginx/trou Troubleshooting / emerg - bind - failed - 98 - address - already-in - use/
update2 :
Foi sugerido que outro processo estava usando a porta 80, (é por isso que matá-lo funcionou e também faz sentido porque o b / c nginx não estava sendo executado no momento).
https://community.letsencrypt.org/t/nginx-emerg-bind-to-80-failed-98-address-already-in-use/52914/4
Eles também apontam que ver o processo, antes de matá-lo, pode fornecer informações sobre o que causou o problema.
Portanto, provavelmente é melhor usar:
sudo fuser -k 80/tcp
(sem a opção -k), seguido de agrep
para esses números de processo.systemctl list-unit-files
saída, pode fornecer informações sobre processos conflitantesou:, em
fuser -kivn tcp 80
que:-v
imprime o nome do processo, além da identificação do processo-i
, avisa antes de matarhttps://community.letsencrypt.org/t/nginx-emerg-bind-to-80-failed-98-address-already- em uso / 52914/5
fonte
No meu caso, não consegui encontrar nenhuma duplicata. No entanto, eu tinha o default.conf onde comentei toda a configuração, exceto o bloco do servidor de abertura e o colchete de fechamento ... e isso causou o erro conflitante.
Basicamente, era um bloco de servidor não contabilizado SEM uma diretiva server_name que causou o problema, não uma duplicada.
fonte