Баг или фича? Странности с listen.
Zhivotnev Vlad
root на vlad.pro
Ср Мар 28 13:42:52 UTC 2012
Была такая конструкция:
listen 81;
listen 444 ssl;
ssl on;
ssl_certificate ...;
ssl_certificate_key ...;
Попытался добавить туда ещё и listen 82; (порт неважен, пробовал 8081,
8082 и так далее, эффект одинаковый). Nginx стал отвечать 400кой (The
plain HTTP request was sent to HTTPS port) на этих новых портах. При
том, если убрать ssl on - то всё хорошо.
То есть, конструкция вида:
listen 81;
listen 82;
listen 444 ssl;
ssl on;
ssl_certificate ...;
ssl_certificate_key ...;
Работает неверно, http только на 81м порту, https - на 444м или 82м.
А конструкция:
listen 81;
listen 82;
listen 444 ssl;
#ssl on;
ssl_certificate ...;
ssl_certificate_key ...;
работает нормально и http висит на 81м и 82м.
Есть этому какое-нибудь объяснение? Особенность "ssl on"? Не очень бы
хотелось поймать непонятный спецэффект от этого на большом кластере)
Более того, непонятно как в данном случае выбирается http порт - в
любых вариациях он был именно 81й (ни по первой строчке по порядку в
конфиге, ни по номеру порта. Разве что 81й в данном месте
приоритетнее).
Ну и сразу вопрос вдогонку - если это особенность ssl on, то можно ли
жить спокойно без этой строки, помечая нужные порты директивой ssl ?
nginx: nginx version: nginx/1.0.4
nginx: TLS SNI support enabled
nginx: configure arguments: --prefix=/etc/nginx
--conf-path=/etc/nginx/nginx.conf
--error-log-path=/var/log/nginx/error.log
--http-client-body-temp-path=/var/lib/nginx/body
--http-fastcgi-temp-path=/var/lib/nginx/fastcgi
--http-log-path=/var/log/nginx/access.log
--http-proxy-temp-path=/var/lib/nginx/proxy
--http-scgi-temp-path=/var/lib/nginx/scgi
--http-uwsgi-temp-path=/var/lib/nginx/uwsgi
--lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid
--with-debug --with-http_addition_module --with-http_flv_module
--with-http_mp3_module --with-http_dav_module --with-http_geoip_module
--with-http_gzip_static_module --with-http_image_filter_module
--with-http_perl_module --with-http_realip_module
--with-http_stub_status_module --with-http_ssl_module
--with-http_sub_module --with-http_xslt_module --with-ipv6
--with-sha1=/usr/include/openssl --with-md5=/usr/include/openssl
--with-mail --with-mail_ssl_module
--add-module=/home/censored/nginx-stable/debian/modules/nginx-echo
--add-module=/home/censored/nginx-stable/debian/modules/nginx-development-kit
--add-module=/home/censored/nginx-stable/debian/modules/nginx-lua
--add-module=/home/censored/nginx-stable/debian/modules/nginx-upstream-fair
Подробная информация о списке рассылки nginx-ru