<HTML><BODY>Добрый день.<br><br>> Статика, скажем, размером 20kb отдаётся порядка 1-1.5 секунды.<br>Самый первый вопрос - определить, кто тупит. <br>Либо тупит сервер и тогда вопрос к nginx, либо клиент и тогда вопрос не сюда.<br><br>Соберите tcp трейс на стороне сервера и посмотрите сколько времени реально уходит у nginx'а и нет ли tcp retry в сторону клиента.<br><br><br><blockquote style="border-left:1px solid #0857A6; margin:10px; padding:0 0 0 10px;">
        Четверг,  5 июля 2018, 17:45 +03:00 от YuriN <nginx-forum@forum.nginx.org>:<br>
        <br>
        <div id="">






<div class="js-helper js-readmsg-msg">
        <style type="text/css"></style>
        <div>
                <base target="_self" href="https://e.mail.ru/">
                
            <div id="style_15308019540000000948_BODY">Добрый день!<br>
<br>
Имеем очень медленную отдачу закэшированной статики. Посоветуйте пожалуйста<br>
как можно ускорить работу.<br>
<br>
Статика, скажем, размером 20kb отдаётся порядка 1-1.5 секунды. При чём TTFB<br>
относительно быстрый - 200-300 ms, а доставка от nginx до браузера уже 1-1.5<br>
секунды.  По логам видно, что эта статика берётся из кэша всё-таки<br>
($upstream_response_time = 0).<br>
Условия проверки: обращение к титульной странице нашего сайта - это 80<br>
запросов, 2.7Mb трафика суммарно, по https, http2.<br>
Конфиг вроде бы стандартный, без особого тюнинга (приложен)<br>
Если скачивать один только статический файл (1 запрос) - то он скачивается<br>
без этих задержек - 27 ms. <br>
<br>
Топология:<br>
nginx-сервер в нашей конфигурации является проскирующим и кэширующим<br>
сервером:<br>
кэширует статику с сервера приложений, к-ый расположен в этой же локальной<br>
сети.<br>
<br>
Ошибок на сетевых интерфейсах клиента и сервера нет. Каналы не перегружены.<br>
(Пропускная способность 1Гбит/с), И в момент обращения к nginx - загрузка<br>
максимум 5Mbit/s). В лимиты  ЦПУ/память/ дисковый I/O /сеть не упираемся<br>
судя по vmstat, top, atop, zabbix. Хотя очевидно есть какое-то ограничение,<br>
про к-ое мне пока неизвестно. <br>
8 ядер, 8Gb RAM, Load average 0.00, 0.00, 0.00<br>
<br>
В error логах пусто, строки о nginx: [warn] the "ssl" directive is<br>
deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/<br>
не считаю важными.<br>
<br>
Также я пробовал размещать proxy_cache_path на tmpfs (в ОЗУ) - не дало<br>
никакого прироста.<br>
<br>
nginx последний stable, из оффициального репозитория nginx.org<br>
<br>
Я проверял в разных сетях (с разным коммутационным оборудованием), на разных<br>
физических серверах, на разных дистрибутивах Linux.<br>
<br>
<br>
_____________________________________________________________<br>
<br>
Версии ПО  и конфиги  :<br>
root@proxy4:~# uname -a<br>
Linux proxy4 4.15.0-20-generic #21-Ubuntu SMP Tue Apr 24 06:16:15 UTC 2018<br>
x86_64 x86_64 x86_64 GNU/Linux<br>
nginx 1.14.0-0ubuntu1<br>
дефолтовые  настройки  sysctl<br>
root@proxy4:~# lsb_release -a<br>
Description:    Ubuntu 18.04 LTS<br>
root@proxy4:~# nginx -V<br>
nginx version: nginx/1.14.0<br>
built by gcc 7.3.0 (Ubuntu 7.3.0-16ubuntu3)<br>
built with OpenSSL 1.1.0g  2 Nov 2017<br>
TLS SNI support enabled<br>
configure arguments: --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx<br>
--modules-path=/usr/lib/nginx/modules --conf-path=/etc/nginx/nginx.conf<br>
--error-log-path=/var/log/nginx/error.log<br>
--http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid<br>
--lock-path=/var/run/nginx.lock<br>
--http-client-body-temp-path=/var/cache/nginx/client_temp<br>
--http-proxy-temp-path=/var/cache/nginx/proxy_temp<br>
--http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp<br>
--http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp<br>
--http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx<br>
--with-compat --with-file-aio --with-threads --with-http_addition_module<br>
--with-http_auth_request_module --with-http_dav_module<br>
--with-http_flv_module --with-http_gunzip_module<br>
--with-http_gzip_static_module --with-http_mp4_module<br>
--with-http_random_index_module --with-http_realip_module<br>
--with-http_secure_link_module --with-http_slice_module<br>
--with-http_ssl_module --with-http_stub_status_module --with-http_sub_module<br>
--with-http_v2_module --with-mail --with-mail_ssl_module --with-stream<br>
--with-stream_realip_module --with-stream_ssl_module<br>
--with-stream_ssl_preread_module --with-cc-opt='-g -O2<br>
-fdebug-prefix-map=/data/builder/debuild/nginx-1.14.0/debian/debuild-base/nginx-1.14.0=.<br>
-specs=/usr/share/dpkg/no-pie-compile.specs -fstack-protector-strong<br>
-Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fPIC'<br>
--with-ld-opt='-Wl,-Bsymbolic-functions<br>
-specs=/usr/share/dpkg/no-pie-link.specs -Wl,-z,relro -Wl,-z,now<br>
-Wl,--as-needed -pie'<br>
<br>
<br>
/etc/nginx/nginx.conf <br>
<br>
user              www-data;<br>
worker_processes  8;<br>
error_log  /var/log/nginx/error.log;<br>
pid        /var/run/nginx.pid;<br>
events {<br>
    worker_connections  4000;<br>
}<br>
worker_rlimit_nofile 200000;<br>
http {<br>
    client_max_body_size 10m;<br>
    charset utf-8;<br>
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=all:512m;<br>
    include       /etc/nginx/mime.types;<br>
    default_type  application/octet-stream;<br>
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request"<br>
'<br>
                      '$status $body_bytes_sent "$http_referer" '<br>
                      '"$http_user_agent" "$http_x_forwarded_for"<br>
$upstream_response_time';<br>
    access_log  /var/log/nginx/access.log  main buffer=16k;<br>
        server_tokens off;<br>
        client_body_buffer_size 128k;<br>
        keepalive_requests 1000;<br>
   sendfile        on;<br>
        sendfile_max_chunk 512k;<br>
        proxy_buffering on;<br>
open_file_cache max=200000 inactive=20s;<br>
open_file_cache_valid 30s;<br>
open_file_cache_min_uses 2;<br>
open_file_cache_errors on;<br>
    keepalive_timeout  65;<br>
    include /etc/nginx/conf.d/*.conf;<br>
}<br>
<br>
<br>
/etc/nginx/conf.d/beta.domain.ru.conf<br>
<br>
proxy_cache_path /tmp/nginx_CACHE_ZONE keys_zone=CACHE:2048M;<br>
proxy_temp_path  /tmp/nginx_temp;<br>
upstream backend {<br>
        server 195.209.xx:80;<br>
}<br>
upstream backend_old {<br>
        server 195.209.xx:8098;<br>
}<br>
server {<br>
        listen          443 ssl http2;<br>
        server_name     <a href="https://e.mail.ru/cgi-bin/link?check=1&refresh=1&cnf=fcc9ac&url=&msgid=15308019540000000948&x-email=vp7%40mail.ru" target="_blank">www.domain.ru;</a><br>
        access_log      /var/log/nginx/www.domain.ru.access.log  main buffer=16k;<br>
        error_log       /var/log/nginx/www.domain.ru.error.log;<br>
        client_max_body_size    20m;<br>
        keepalive_timeout       60;<br>
        gzip on;<br>
        gzip_proxied any;<br>
        gzip_types *; <br>
        gzip_vary on; <br>
        ssl     on;<br>
        ssl_certificate /etc/dehydrated/certs/domain.ru/fullchain.pem;<br>
        ssl_certificate_key     /etc/dehydrated/certs/domain.ru/privkey.pem;<br>
        ssl_session_timeout     5m;<br>
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;<br>
        ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';<br>
        ssl_prefer_server_ciphers       on;<br>
        ssl_dhparam /etc/nginx/ssl/crt/dhparam.pem;<br>
        charset utf-8;<br>
        proxy_send_timeout 300;<br>
        proxy_read_timeout 300;<br>
        location = / {<br>
                proxy_cache_valid 200 301 302 304 5m;<br>
                proxy_cache_key<br>
"$request_method|$http_if_modified_since|$http_if_none_match|$host|$request_uri";<br>
                proxy_hide_header "Set-Cookie";<br>
                proxy_ignore_headers "Cache-Control" "Expires";<br>
                proxy_cache_use_stale error timeout invalid_header http_500 http_502<br>
http_503 http_504;<br>
                proxy_cache     CACHE;<br>
                proxy_redirect off;<br>
                proxy_set_header Host $host;<br>
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
                proxy_pass http://backend;<br>
        }<br>
        location ~*<br>
^(/static/|/buildpack/|/assets/|/devadm/|/desktop/|/bitrix/|/jsframework/|/templates/|/upload/|/tmp/).+\.(jpg|jpeg|gif|png|ico|css|css.*|js|js.*|swf|txt|ico|svg|woff2)$<br>
{<br>
                expires 1h;<br>
                add_header Cache-Control public;<br>
                proxy_hide_header "Set-Cookie";<br>
                proxy_pass http://backend;<br>
                proxy_cache CACHE;<br>
                proxy_cache_valid 1h;<br>
        }<br>
        location / {<br>
                proxy_set_header Accept-Encoding "";<br>
                sub_filter 'http://' 'https://';<br>
                sub_filter_once off;<br>
<br>
                proxy_redirect off;<br>
                proxy_set_header Host $http_host;<br>
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br>
                proxy_pass http://backend_old;<br>
        }<br>
}<br>
<br>
root@proxy4:~# vmstat 1<br>
procs -----------memory---------- ---swap-- -----io---- -system--<br>
------cpu-----<br>
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id<br>
wa st<br>
 1  0      0 7716604  25012 264788    0    0     4     2   54   36  0  0 100<br>
 0  0<br>
 0  0      0 7716632  25012 264788    0    0     0     0  418  286  0  0 100<br>
 0  0<br>
 0  0      0 7716664  25020 264784    0    0     0    28  408  285  0  0 100<br>
 0  0<br>
 0  0      0 7716728  25020 264788    0    0     0     0  434  300  0  0 100<br>
 0  0<br>
 0  0      0 7716600  25020 264788    0    0     0     0  411  290  0  0 100<br>
 0  0<br>
 0  0      0 7716604  25020 264804    0    0     0    28  615  305  1  0 99 <br>
0  0<br>
 0  0      0 7716604  25020 264804    0    0     0     0  582  283  0  0 99 <br>
0  0<br>
 0  0      0 7716508  25020 264804    0    0     0     0  396  256  0  0 100<br>
 0  0<br>
<br>
Posted at Nginx Forum: <a href="https://forum.nginx.org/read.php?21,280414,280414#msg-280414" target="_blank">https://forum.nginx.org/read.php?21,280414,280414#msg-280414</a><br>
<br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a><br data-mce-bogus="1"></div>
            
        
                <base target="_self" href="https://e.mail.ru/">
        </div>

        
</div>


</div>
</blockquote>
<br>
<br>---<br>С уважением,<br> Виталий<br></BODY></HTML>