Nginx перенаправить http: // www и голый http / https на https: // www

Я хотел бы перенаправить весь трафик со следующих доменов:

http://domain.comhttp://www.domain.comhttps://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://wwwhttp://www домен перенаправляется на безопасныйhttps://wwwhttps:// www работает

Что не

обнаженныйhttps:// не работает, браузер выбрасывает сервер не найден

В основном я хочу перенаправить весь трафик на безопасныйhttps://www.domain.com, Что мне здесь не хватает?

Ответы на вопрос(4)

Ваш ответ на вопрос