постоянное использование https
Igor Sysoev
is at rambler-co.ru
Mon Jun 15 11:59:43 MSD 2009
On Mon, Jun 15, 2009 at 11:37:47AM +0400, umask wrote:
> Выяснилась любопытная ситуация:
>
> Имеем вот такой конфиг сервера:
> 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;
>
> 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;
> }
> }
>
> на порту 9095 слушает томакатовский коннектор с включенным SSL:
>
> <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxSpareThreads="75" maxThreads="150" minSpareThreads="25" port="9095" redirectPort="443" SSLEnabled="true" useBodyEncodingForURI="true" proxyPort="443" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystorePass="blabla" keystoreFile="/home/keys/tomcat-keystore" />
>
> И - ЧТО ВАЖНО - sub_filter работает. Всё как я хочу. Только возникло желание выкинуть коннектор в томкате с порта 9095 и использовать коннектор без SSL.
>
> Заменяю proxy_pass на http://127.0.0.1:8095/ и sub_filter работать перестаёт.
>
> В чём мистика?
Обычно такая мистика происходит, если бэкенд выдал сжатый или chunk-нутый
ответ. Во втором Tomcat не замечен (обычно это случается с PHP-ными
скриптами), так что, скорее первое. Можно попробовать добавить
proxy_set_header Accept-Encoding "";
--
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list