Доброго дня, коллеги.
Для начала краткое описание системы. Есть домен domain.tld и множество поддоменов subdomains.domain.tld. Все A-записи в ДНС указывают на один и тот же IP a.b.c.d. Возникла потребность отдавать один поддомен по https - скажем secure.domain.tld. При этом все остальные поддомены и основной домен должны быть доступны только по http. Добавил для этого конфиг с сертификатом только для этого поддомена, после чего все остальные поддомены и основной домен стали доступны по https с невалидным сертификатом. Nginx используется в качестве reverse proxy для приложения на IIS.
Собственно вопрос - почему так происходит и что я сделал не так? Помогите, плиз, разобраться.
Заранее спасибо.
nginx -V:
nginx version: nginx/1.7.7
built by gcc 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
TLS SNI support enabled
Конфиги
domain.tld + subdomains.domain.tld:
server {
listen 80;
server_name domain.tld;
root /var/www;
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
include /etc/nginx/custom.conf.d/headers.conf;
location = /SomeFolder/ {
proxy_connect_timeout 3600;
proxy_send_timeout 3600;
proxy_read_timeout 3600;
send_timeout 3600;
proxy_pass http://app-01;
}
location ~* ^authors$ {
try_files $uri @addslash;
}
location @addslash {
return 301 $uri/;
}
location / {
error_page 404 /40x.html;
error_page 500 502 503 504 @maintenance;
include /etc/nginx/custom.conf.d/cache.conf;
include /etc/nginx/custom.conf.d/rewrite.conf;
proxy_pass http://webfarm;
}
location /40x.html {
root /var/www;
}
location @maintenance {
rewrite ^(.*)$ /50x.html break;
}
}
server {
listen 80;
server_name www.domain.tld;
return 301 http://domain.tld$request_uri;
}
server {
listen 80;
server_name ~^(?<subdomain>.+)\.domain\.tld$;
gzip on;
gzip_disable "msie6";
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;
include /etc/nginx/custom.conf.d/headers.conf;
location / {
error_page 500 502 503 504 @maintenance;
proxy_pass http://webfarm;
}
location @maintenance {
rewrite ^(.*)$ /50x.html break;
}
}
secure.domain.tld:
server {
listen 443 ssl;
server_name secure.domain.tld;
ssl_certificate /etc/ssl/certs/secure_domain_tld/secure_domain_tld.pem;
ssl_certificate_key /etc/ssl/private/secure_domain_tld.key;
ssl_session_cache shared:SSL_secure_domain_tld:20m;
ssl_session_timeout 180m;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:!ADH:!AECDH:!MD5;
ssl_dhparam /etc/ssl/dhparams_2048.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
add_header Strict-Transport-Security "max-age=31536000" always;
include /etc/nginx/custom.conf.d/headers.conf;
location / {
proxy_pass http://app-01/some_dir/some_subdir/script.aspx;
}
}
nginx.conf:
user www-data;
worker_processes 8;
worker_rlimit_nofile 2048;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
multi_accept on;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] $status ' '<<< UPSTREAM: $upstream_addr >>> ' '"$request" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
server_tokens off;
sendfile on;
tcp_nopush on;
keepalive_timeout 65;
tcp_nodelay on;
gzip off;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
geoip_city /etc/nginx/GeoIPCity.dat;
access_log off;
rewrite_log off;
push_stream_shared_memory_size 1500m;
push_stream_max_channel_id_length 200;
push_stream_max_messages_stored_per_channel 2000;
push_stream_message_ttl 10m;
push_stream_ping_message_interval 10s;
push_stream_subscriber_connection_ttl 15m;
push_stream_longpolling_connection_ttl 5m;
push_stream_timeout_with_body off;
push_stream_authorized_channels_only off;
push_stream_allowed_origins "*";
push_stream_wildcard_channel_prefix "broad_";
push_stream_wildcard_channel_max_qtd 3;
push_stream_message_template "{\"id\":~id~,\"channel\":\"~channel~\",\"text\":\"~text~\", \"tag\":\"~tag~\", \"time\":\"~time~\", \"eventid\":\"~event-id~\"}";
}