Welcome! Log In Create A New Profile

Advanced

4 виртуальных SSL сервера на одном порту и потеря пакетов

August 31, 2010 02:57AM
Доброго времени суток. Прошу помощи у уважаемого сообщества.

Имеется Nginx на Ubuntu за которым работают 4 Tomcat приложения на разных портах.
Было необходимомо показать эти приложения в мир чарез HTTPS под разными URL, но все на одном порту 443.
Серверный сертификат для всех серверов используется один, купленный на *.domain.com. Вся эта схема работает.

Проблемы начались при активном обращении пользователей к приложениям, время ответа через nginx исчисляется несколькими десятками секунд и общее количетсво потерь достигает 10% (измерялось эмулятором активности jmeter). Число соединений в состоянии CLOSE_WAIT и TIME_WAIT доходит до 300. При прочих равных при обращении к приложениям напрямую (без nginx) на соответствующий порт ни одной из вышеперечисленных проблем не наблюдается.
После апдейта до последней стабильной версии nginx не стартовал корректно, сообщая, что порт 443 используется, т.е. из моих четырех виртуальных серверов стартовать мог только один. Очевидно это результат запрета renegotiation в 0.7.64 (правильно ли я понимаю?), который должен препятствовать SSL атакам.
Пришлось откатиться до версии 0.7.62.
Вопрос в следующем: значение каких параметров в nginx конфиге стоит проработать чтобы исправить ситуацию?
есть ли возможность накатить исправления, которые затрагивают работу соединений не обновляя базовую версию? какие именно исправления могут помочь решить такую проблему?

Конфиг прилагается.

# nginx -V

nginx version: nginx/0.7.62
built by gcc 4.3.3 (Ubuntu 4.3.3-5ubuntu4)
configure arguments: --sbin-path=/usr/local/nginx/nginx --conf-path=/etc/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=pcre-6.1 --with-zlib=zlib-1.2.3 --with-openssl=openssl-0.9.8k

[b]nginx.conf[/b]

user www-data;
worker_processes 4;

error_log /nginx/log/error.log;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /nginx/log/access.log;
error_log /nginx/log/nginx.error.log debug;

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

log_format main '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$args" "$request_method" "$scheme" '
'"$uri" "$request_body"' ;

server_names_hash_bucket_size 128;
sendfile on;
tcp_nopush on;

keepalive_timeout 0;
tcp_nodelay on;

client_body_timeout 600;
client_header_timeout 600;
send_timeout 600;
expires 600;

## Size Limits
client_body_buffer_size 50000k;
client_header_buffer_size 1000k;
client_max_body_size 50000k;
large_client_header_buffers 1 1000k;

proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
server {
listen 443;
server_name site.company1.domain.com;
ignore_invalid_headers off;
ssl on;
ssl_prefer_server_ciphers on;
ssl_certificate /key_store/company.crt;
ssl_certificate_key /key_store/company.key;
location / {
proxy_pass https://localhost:8006;
}
}
server {
listen 443;
server_name company1.domain.com;
server_name_in_redirect off;
ssl on;
ssl_certificate /key_store/company.crt;
ssl_certificate_key /key_store/company.key;
location / {
proxy_pass https://localhost:8444;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 443;
server_name site.company2.domain.com;
ignore_invalid_headers off;
ssl on;
ssl_prefer_server_ciphers on;
ssl_certificate /key_store/company.crt;
ssl_certificate_key /key_store/company.key;
location / {
proxy_pass https://localhost:8008;
}
}
server {
listen 443;
server_name company2.domain.com;
server_name_in_redirect off;
ssl on;
ssl_certificate /key_store/company.crt;
ssl_certificate_key /key_store/company.key;
location / {
proxy_pass https://localhost:8446;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
Subject Author Posted

4 виртуальных SSL сервера на одном порту и потеря пакетов

Ngineer August 31, 2010 02:57AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Igor Sysoev August 31, 2010 03:42AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Ngineer September 09, 2010 06:27AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Ngineer September 09, 2010 07:05AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Igor Sysoev September 09, 2010 06:38AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Igor Sysoev September 09, 2010 06:40AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Andrey N. Oktyabrski September 09, 2010 09:12AM

Re: 4 виртуальных SSL сервера на одном порту и потеря пакетов

Ngineer September 23, 2010 06:51AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 78
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready