Nginx перенаправить http: // www и голый http / https на https: // www
Я хотел бы перенаправить весь трафик со следующих доменов:
http://domain.com
http://www.domain.com
https://domain.com
в
https://www.domain.com
У меня есть сертификат SSL для вышеуказанного домена. Здесь размещается приложение Rails, обслуживаемое Passenger.
Чтобы выполнить перенаправление для открытого домена, я настроил перенаправление URL в моей учетной записи DNSimple:
URL domain.com 3600 https://www.domain.com
Мои серверные блоки выглядят следующим образом (вдохновленоNginx без www для www и www для no-www среди других):
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;
Что работает:
незащищенный домен перенаправляется на защищенныйhttps://www
http://www
домен перенаправляется на безопасныйhttps://www
https://
www работаетЧто не
обнаженныйhttps://
не работает, браузер выбрасывает сервер не найденВ основном я хочу перенаправить весь трафик на безопасныйhttps://www.domain.com
, Что мне здесь не хватает?