Страница 1 из 1

nginx https rewrite

Добавлено: 2009-12-11 1:40:47
opt1k
Собственно пользую nginx, ssl работает, нужно что бы если пользователь набирает:

Код: Выделить всё

http://supersite.ru
его перенаправляло на:

Код: Выделить всё

https://supersite.ru
в инете нашёл такое:

Код: Выделить всё

if ( $scheme = "http" ) {
              rewrite ^/(.*)$   https://$host/$1 permanent;
        }
вставил это в конфиг - не перенаправляет. Когда захожу по http то получаю такое в браузере:

Код: Выделить всё

400 Bad Request
The plain HTTP request was sent to HTTPS port
nginx/0.7.64
есть соображения как заставить редиректить на https?

Re: nginx https rewrite

Добавлено: 2009-12-11 10:14:01
hizel
мой вариант

Код: Выделить всё

    server {
        listen       X.Y.Z.W:80;
        server_name  o.doamin.ru www.o.domain.ru;
        rewrite ^(.*) https://o.domain.ru$1 permanent;
    }

    server {
        listen       X.Y.Z.W:443;
        server_name  o.domain.ru;
        server_name_in_redirect on;
        ssl                  on;
        ssl_certificate      cert/o.domain.ru.crt;
        ssl_certificate_key  cert/o.domain.ru.key.unsecure;
        ssl_session_timeout  5m;
        ssl_protocols  SSLv2 SSLv3 TLSv1;
        ssl_ciphers  ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers   on;

Re: nginx https rewrite

Добавлено: 2009-12-11 18:38:46
opt1k
спасибо!
от себя добавлю, что бы виртуалхосты работали:

Код: Выделить всё

rewrite ^(.*) https://o.domain.ru$1 permanent;
меняем на:

Код: Выделить всё

rewrite ^(.*) https://$host$1 permanent;

Re: nginx https rewrite

Добавлено: 2011-02-07 11:43:05
dnclive
действительно этот метод работает!, только слеш добавить наверное надо между $host и $1

Код: Выделить всё

rewrite ^/(.*)$	https://$host/$1 permanent;
Спасибо!