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