ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Проблема с редиректом http н а https.



Приветствую Всех!

Максим, огромнейшее вам спасибо. Перехват 497 ошибки сделал именно то что мене было необходимо!

2009/7/2 Maxim Dounin <mdounin@xxxxxxxxxx>
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
> >
> >
> >




 




Copyright © Lexa Software, 1996-2009.