Redirecionar da porta 80 para a 443 com nginx e vários servidores

1

Para começar, sou um pouco novo com o nginx e um pouco perdido… Infelizmente não encontrei nenhuma solução para isso, então aqui está o meu problema. Se for uma cópia de uma pergunta já existente, peço desculpas e ficarei muito satisfeito em ver a resposta.

Estou construindo meu primeiro servidor nginx e tenho dois nomes de domínio, um deles tem muitos subdomínios e desejo colocar um redirecionamento de SSL em todos eles. O problema é que ele funciona apenas uma vez com um IPv6 listen (aqui na configuração padrão), e o nginx não inicia se eu colocar essa mesma configuração nos outros subdomínios (cada subdomínio tem seu próprio arquivo de configuração do servidor com seus próprios 80 → 443 redirecionamento do servidor).

server {
listen 443;
listen [::]:443;

## All the config and stuff

}

server {
listen      80 default_server;
listen [::]:80 default_server ipv6only=on;
server_name www.mydomainna.me mydomainna.me;
rewrite     ^   https://$server_name$request_uri? permanent;
}

Este é o arquivo de configuração padrão e funciona como um encanto.

No entanto, e isso é o que me incomoda, é que nesta mesma configuração exata (menos o default_server) para cada subdomínio único e meu segundo nome de domínio devo remover IPv6 ou nginx não quer começar.

server {
listen 443;
listen [::]:443;

## All the config and stuff

}

server {
listen      80;
server_name subdomain.mydomainna.me;
rewrite     ^   https://$server_name$request_uri? permanent;
}

Então, minha pergunta aqui é: como posso dizer para ouvir no IPv6 todos os meus outros arquivos de configuração?

Me desculpe se eu não expliquei a minha pergunta de forma adequada e se qualquer um de vocês tem uma solução, obrigado.

    
por garfieldairlines 12.04.2016 / 17:33

1 resposta

3

De acordo com esta página , a linha abaixo diz ao Nginx para ouvir porta 80 para IP4 e IP6.

listen [::]:80 default_server;

Você tem duas diretivas dizendo ao Nginx para escutar na porta 443, e é por isso que você está recebendo a mensagem de escuta duplicada. Basta remover a primeira linha abaixo e isso deve funcionar.

listen 443;
listen [::]:443;

Note que eu não sabia nada sobre o Nginx IP6 até passar 2 minutos no Google. Uma quantidade muito pequena de pesquisa descobriu essa solução.

    
por 12.04.2016 / 21:32