Вернуться   Форум об интернет-маркетинге > >
Ответ
 
Опции темы
Старый 15.05.2019, 11:49   #1
Кандидат наук
 
Аватар для grey109
 
Регистрация: 15.06.2005
Сообщений: 456
Репутация: 29869
Отправить сообщение для grey109 с помощью ICQ

По умолчанию Nginx отдает статику в режиме SSL в 2-3 раза медленее

Приветствую всех.

Задал аналогичный вопрос на другом форуме, ответа не получил, думаю может тут помогут.

И так, есть средненький сервер (AMD Opteron 2,8ГГц Dual Core / 8 Гб). На нем расположен не сильно незагруженый сайт с видео файлами. Все это работает под управлением Windows Server 2008 R2. Потребовалось подключить для сайта https. Что и было сделано. Но тут выяснилось, что скорость отдачи видео nginx v1.16 падает почти в два-три раза по сравнению с http. Первое, что я подумал - это процессор не справляется, но он загружен на 5-10%. Памяти свободной - полно. Качаю файл по http одна скорость, качаю по https - почти в 2-3 раза меньше. Вот конфиг отвечающий за шифрование:

listen 443 ssl;
ssl_certificate domain.crt;
ssl_certificate_key domain-key.txt;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384HE-RSA-AES128-GCM-SHA256HE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHAHE-RSA-AES128-SHA256HE-RSA-AES128-SHAHE-RSA-AES256-SHA256HE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHAES-CBC3-SHA:!DSS';
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

ssl_trusted_certificate domain.crt;
resolver 8.8.8.8 8.8.4.4;

Сертификат на пробу взял бесплатный на Let's Encrypt. Он 4096 битный, может дело в этом?

Подскажите, что может так сильно ограничивать скорость отдачи? Я уже голову всю сломал, может дело в Windows + nginx? У кого-то есть опыт работы в такой связке?

Заранее спасибо.
grey109 вне форума   Ответить с цитированием

Реклама
Старый 15.05.2019, 15:18   #2
Dram
Академик
 
Регистрация: 28.06.2008
Сообщений: 6,769
Репутация: 386284

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Пробовали менять протоколы и ключи шифрования?

У меня так, правда на линкусе
Цитата:
ssl_protocols TLSv1.3 TLSv1.2;
ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:RSA+3DES:!NULL:!RC4;
Не копируйте слепо, вероятно вам еще нужно активировать TLSv1.3

P.S. я мониторил логи, клиентов с TLSv1.1 TLSv1; набирается 5-6 чел. за день на трафике в 50.000
Dram вне форума   Ответить с цитированием
Старый 15.05.2019, 19:20   #3
danforth
SRE
 
Регистрация: 18.12.2015
Адрес: Одесса
Сообщений: 1,059
Репутация: 172977

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Весь конфиг скиньте. Проверьте sendfile и sendfile_max_chunk. Секция с ssl находится в другом блоке server, и настройки могут быть другие.
danforth вне форума   Ответить с цитированием
Старый 15.05.2019, 22:10   #4
grey109
Кандидат наук
 
Аватар для grey109
 
Регистрация: 15.06.2005
Сообщений: 456
Репутация: 29869
Отправить сообщение для grey109 с помощью ICQ

ТопикСтартер Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Dram, пробовал и раньше разные наборы протоколов, проверил ваш вариант настроек - вообще без изменений.

Проблема вроде как не в сервере/провайдере, т.к. тот же speedtest запущенный на сервере показывает честную скорость подключения в 100мбит.

Такое чувство, что какой-то буфер nginx не дает работать на полную скорость отдачи. Настройки nginx я уже вдоль и поперек разные перепробовал - становилось или медленнее или так же. Я уже начинаю думать, может действительно nginx под Windows так работает?

danforth, завтра скину.
grey109 вне форума   Ответить с цитированием
Старый 16.05.2019, 09:44   #5
grey109
Кандидат наук
 
Аватар для grey109
 
Регистрация: 15.06.2005
Сообщений: 456
Репутация: 29869
Отправить сообщение для grey109 с помощью ICQ

ТопикСтартер Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Конфиг:

worker_processes 2;

events {
worker_connections 1024;
accept_mutex off; # вроде бы под windows так быстрее
}

http {
include mime.types;
default_type application/octet-stream;

log_format main_apache '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 65;

server {
listen 80;
listen 443 ssl;
server_name domain.ru;

root f:/domain.ru;

ssl_certificate domain.crt;
ssl_certificate_key domain-key.txt;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:50m;
ssl_session_tickets off;

ssl_ciphers 'ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384HE-RSA-AES128-GCM-SHA256HE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHAHE-RSA-AES128-SHA256HE-RSA-AES128-SHAHE-RSA-AES256-SHA256HE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHAES-CBC3-SHA:!DSS';
ssl_protocols TLSv1.2 TLSv1.1 TLSv1;

ssl_prefer_server_ciphers on;

ssl_stapling on;
ssl_stapling_verify on;

ssl_trusted_certificate domain.crt;
resolver 8.8.8.8 8.8.4.4 valid=600s;

access_log logs/access.log combined;
error_log logs/error.log;

server_tokens off;

client_max_body_size 500m;

sendfile on;
tcp_nopush on;

location / {
index index.php;

proxy_pass http://127.0.0.5:8888/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

location ~* ^.+\.(jpg|jpeg|gif|png|css|js|ico|mp3|swf)$ {
}

location /video/ {
root f:/domain.ru;
mp4;
}
}
}
grey109 вне форума   Ответить с цитированием
Старый 16.05.2019, 10:30   #6
kxk
Offshore protection
 
Аватар для kxk
 
Регистрация: 30.01.2005
Адрес: Cayman Islands
Сообщений: 16,684
Репутация: 560232
Отправить сообщение для kxk с помощью Skype™
Социальные сети Аккаунт в Telegram

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

grey109, Выбросить Nginx, перейти на Caddy и забыть про головную боль и нервное копание в сложных конфигах)))
kxk вне форума   Ответить с цитированием
Старый 16.05.2019, 13:38   #7
EvGenius
Кандидат наук
 
Регистрация: 28.09.2003
Адрес: Севастополь
Сообщений: 251
Репутация: 35553
Социальные сети Профиль на Хабрахабре

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Цитата:
Сообщение от grey109 Посмотреть сообщение
процессор не справляется, но он загружен на 5-10%. Памяти свободной - полно. Качаю файл по http одна скорость, качаю по https - почти в 2-3 раза меньше.
кто ж вас знает чем и как качаете?
может на телефоне вообще? :] может на нем в это время проц на 100%... при 4096

с другого устройства та же картина?

надо первым делом попробовать на 2048 перейти.
и тут посмотреть что пишут https://www.ssllabs.com/ssltest/ по вашему серверу.

плюс, не знаю как на амд, но на интелах был нюанс, что AES инструкции у процессора могут быть выключены в bios.
без них сильно медленней оно шифрует.
как проверить не подскажу, все усугбляется тем что речь идет про windows...

однако да, факт что по https все будет заметно (или не очень, кому как) медленней.
лишняя работа же добавляется и на отдающей и на принимающей стороне.
если речь про видео, то http2 тут не поможет. но включить все же стоит.
EvGenius вне форума   Ответить с цитированием
Старый 16.05.2019, 14:16   #8
Vin_cent
Профессор
 
Аватар для Vin_cent
 
Регистрация: 22.01.2010
Сообщений: 809
Репутация: -73418

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Цитата:
Сообщение от kxk Посмотреть сообщение
grey109, Выбросить Nginx, перейти на Caddy и забыть про головную боль и нервное копание в сложных конфигах)))
Детский сад
Vin_cent вне форума   Ответить с цитированием
Старый 16.05.2019, 14:27   #9
kxk
Offshore protection
 
Аватар для kxk
 
Регистрация: 30.01.2005
Адрес: Cayman Islands
Сообщений: 16,684
Репутация: 560232
Отправить сообщение для kxk с помощью Skype™
Социальные сети Аккаунт в Telegram

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Vin_cent, Экономящий часы работы когда у вас сотни сайтов
kxk вне форума   Ответить с цитированием
Старый 17.05.2019, 11:44   #10
Ravel
Студент
 
Регистрация: 27.02.2016
Сообщений: 17
Репутация: 12594

По умолчанию Re: Nginx отдает статику в режиме SSL в 2-3 раза медленее

Цитата:
Сообщение от grey109 Посмотреть сообщение
...
Подскажите, что может так сильно ограничивать скорость отдачи? Я уже голову всю сломал, может дело в Windows + nginx? У кого-то есть опыт работы в такой связке?

Заранее спасибо.
http://nginx.org/ru/docs/windows.html
Цитата:
Версия nginx под Windows использует “родной” Win32 API (не эмуляцию Cygwin). В настоящий момент в качестве методов обработки соединений используются select() и poll() (1.15.9), поэтому не стоит ожидать высокой производительности и масштабируемости. В силу этого и ряда других известных проблем версия nginx под Windows рассматривается пока как бета-версия.
Ravel вне форума   Ответить с цитированием
Ответ



Опции темы

Быстрый переход


Регистрация Справка Календарь Поддержка Все разделы прочитаны