Выяснилась любопытная ситуация:
Имеем вот такой конфиг сервера:
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 работать перестаёт.
В чём мистика?