постоянное использование https
Igor Sysoev
is at rambler-co.ru
Mon Jun 15 16:41:50 MSD 2009
On Mon, Jun 15, 2009 at 04:26:09PM +0400, umask wrote:
>
>
> 15.06.09, 14:06, "Igor Sysoev" <is at rambler-co.ru>:
>
> > On Mon, Jun 15, 2009 at 01:50:03PM +0400, umask wrote:
> > >
> > >
> > > 15.06.09, 13:45, "umask" <umask at yandex.ru>:
> > >
> > > > 15.06.09, 11:59, "Igor Sysoev" <is at rambler-co.ru>:
> > > > > Обычно такая мистика происходит, если бэкенд выдал сжатый или chunk-нутый
> > > > > ответ. Во втором Tomcat не замечен (обычно это случается с PHP-ными
> > > > > скриптами), так что, скорее первое. Можно попробовать добавить
> > > > > proxy_set_header Accept-Encoding "";
> > > > > --
> > > > > Игорь Сысоев
> > > > > http://sysoev.ru
> > > > Не помогло.
> > > > Добавил proxy_set_header Accept-Encoding "", proxy_pass сделал на 8095 (порт без ssl), рестартанул - опять редиректит с https на http.
> > >
> > > т.е. sub_filter не сработал.
> > Тогда нужен отладочный лог запроса.
> > --
> > Игорь Сысоев
> > http://sysoev.ru
>
>
> log_8095 - это когда sub_filter не срабатывает при таком конфиге (8095 - порт без SSL у томаката):
> server {
> listen 443 default ssl;
> server_name .test.ru;
> ssl on;
> ssl_protocols SSLv3 TLSv1;
> #ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
> ssl_ciphers HIGH;
> ssl_prefer_server_ciphers on;
> ssl_certificate /etc/nginx/ssl/test.ru.crt;
> ssl_certificate_key /etc/nginx/ssl/test.ru.key;
> ssl_session_cache shared:SSL:10m;
> ssl_session_timeout 10m;
>
> limit_req zone=one burst=5;
>
> sub_filter_once off;
> sub_filter 'http://' 'https://';
>
> location / {
> proxy_buffers 128 64k;
> proxy_read_timeout 30;
> proxy_connect_timeout 3;
> proxy_pass http://127.0.0.1:8095/;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host $host;
> }
> }
>
>
>
> log_9095 - это когда sub_filter срабатывает, но связь nginx-tomcat происходит по SSL (9095 - порт у томката с SSL). Конфиг такой:
> server {
> listen 443 default ssl;
> server_name .test.ru;
> ssl on;
> ssl_protocols SSLv3 TLSv1;
> #ssl_ciphers AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
> ssl_ciphers HIGH;
> ssl_prefer_server_ciphers on;
> ssl_certificate /etc/nginx/ssl/test.ru.crt;
> ssl_certificate_key /etc/nginx/ssl/test.ru.key;
> ssl_session_cache shared:SSL:10m;
> ssl_session_timeout 10m;
>
> limit_req zone=one burst=5;
>
> sub_filter_once off;
> sub_filter 'http://' 'https://';
>
> location / {
> proxy_buffers 128 64k;
> proxy_read_timeout 30;
> proxy_connect_timeout 3;
> proxy_pass https://127.0.0.1:9095/;
> proxy_set_header X-Real-IP $remote_addr;
> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
> proxy_set_header Host $host;
> }
> }
>
>
> P.S. limit_req на проблему никак не влияет.
Судя по логам, sub_filter чего-то делает и по числу байт ответы сопадают:
2009/06/15 16:13:06 [debug] 26224#0: *1 http chunk: 63
2009/06/15 16:13:06 [debug] 26224#0: *1 http chunk: 8
2009/06/15 16:13:06 [debug] 26224#0: *1 http chunk: 91
2009/06/15 16:13:06 [debug] 26224#0: *1 http chunk: 8
2009/06/15 16:13:06 [debug] 26224#0: *1 http chunk: 66
2009/06/15 15:49:07 [debug] 24323#0: *8 http chunk: 63
2009/06/15 15:49:07 [debug] 24323#0: *8 http chunk: 8
2009/06/15 15:49:07 [debug] 24323#0: *8 http chunk: 91
2009/06/15 15:49:07 [debug] 24323#0: *8 http chunk: 8
2009/06/15 15:49:07 [debug] 24323#0: *8 http chunk: 66
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list