Nginx redireciona http: // www e http / https nu para https: // www
Gostaria de redirecionar todo o tráfego dos seguintes domínios:
http://domain.com
http://www.domain.com
https://domain.com
para
https://www.domain.com
Eu tenho um certificado SSL para o domínio acima. Ele hospeda um aplicativo Rails, servido pelo Passenger.
Para realizar o redirecionamento de domínio direto, configurei um redirecionamento de URL na minha conta DNSimple:
URL domain.com 3600 https://www.domain.com
Os blocos do meu servidor são os seguintes (Inspirado emNginx no-www para www e www para no-www entre outros):
server {
listen 80;
listen 443;
server_name domain.com;
ssl on;
ssl_certificate /etc/ssl/domain-ssl.crt;
ssl_certificate_key /etc/ssl/domain.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
server_tokens off;
access_log /dev/null;
error_log /dev/null;
return 301 https://www.domain.com$request_uri;
}
server {
listen 443 ssl;
server_name www.domain.com;
root /home/deploy/app/current/public;
passenger_enabled on;
passenger_app_env production;
passenger_set_cgi_param HTTP_X_FORWARDED_PROTO https;
ssl on;
ssl_certificate /etc/ssl/domain-ssl.crt;
ssl_certificate_key /etc/ssl/domain.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
}
passenger_pre_start https://www.domain.com;
O que funciona:
domínio nu é redirecionado para protegerhttps://www
http://www
domínio é redirecionado para protegerhttps://www
https://
www funcionaO que não faz:
Nuhttps://
não funciona, os navegadores lançam um servidor não encontradoBasicamente, quero redirecionar todo o tráfego para o segurohttps://www.domain.com
. O que estou perdendo aqui?