Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Проблема с редирек том http на https.
Hello!
On Thu, Jul 02, 2009 at 01:10:12PM +0300, LinCore wrote:
> Преветствую Генадий,
>
> Как в таком случае можно оргонизовать редиерк в случае если человек ошибочно
> набрал в адрессной строке http вместо https?
>
> Но основное условие это чтобы фронтэнд был не на 80 или 443 порту(они заняты
> уже).
Если человек набрал http://example.com:8081/, а на 8081 порту
живёт https - будет сгенерирована (нестандартная) ошибка 497.
Соответственно на нее надо повестить error_page с редиректом,
как-то так:
error_page 497 https://example.com:8081/;
Maxim Dounin
>
> 2009/7/1 Gena Makhomed <gmm@xxxxxxxxx>
>
> > On Tuesday, June 30, 2009 at 18:48:12, LinCore wrote:
> >
> > L> Возникла необходимость сделать ssl бэкэнд с фонтэндом на основе
> > L> nginx, но используя нестандартный порт (например 8081).
> >
> > L> Пример конфигурационого фаила:
> > L> cat nginx.conf
> >
> > L> server {
> >
> > L> listen some_ip:8081;
> >
> > L> server_name some_name_tld;
> >
> > L> ssl on;
> >
> > L> rewrite ^ https://$server_name:$server_port$request_uri redirect;
> >
> > [...]
> >
> > L> И в такой конфигурации редирект который я использую не работает,
> > L> причем если фронтэнд повесить на 80 порт то всё начинает работать как
> > надо.
> >
> > если в конфигурации написано listen some_ip:8081; ssl on;
> > - то это уже "http over ssl". ничего редиректить не надо.
> >
> > если попробовать обратиться по http-протоколу на https порт,
> > http://example.com:443/ то nginx вернет сообщение об ошибке:
> >
> > ==============================================
> >
> > 400 Bad Request
> >
> > The plain HTTP request was sent to HTTPS port
> >
> > ==============================================
> >
> > поэтому для plain http нужно выделять отдельный порт,
> > например, так: 80 - plain http, 443 - http over ssl.
> >
> > --
> > Best regards,
> > Gena
> >
> >
> >
|