ืืืืจ ืฉื ื ืฉื ืคืืชืื, ืืืฆื ืกื ืืฃ ืืฆืื ืืืฉ ืฉื ืฉืจืช ื-HTTP ืืขื ืืืืฆืืขืื ืืืืืืื ืืฉืจืช ื-Proxy ืืจืืื ืคืจืืืืงืืืื nginx 1.20.0, ืืืฉืื ืืช ืืฉืื ืืืื ืฉืืฆืืืจื ืืกื ืืฃ ืืจืืฉื 1.19.x. ืืขืชืื, ืื ืืฉืื ืืืื ืืขื ืฃ ืืืฆืื 1.20 ืืืื ืงืฉืืจืื ืืืืืื ืฉืืืืืช ืืคืืืขืืืืช ืืืืจืืช. ืืงืจืื ืืืืฆืจ ืืขื ืฃ ืืจืืฉื ืฉื nginx 1.21, ืฉืื ืืืฉื ืืคืืชืื ืฉื ืชืืื ืืช ืืืฉืืช. ืืืฉืชืืฉืื ืจืืืืื ืฉืืื ืืื ืืช ืืืฉืืื ืืืืืื ืชืืืืืช ืขื ืืืืืืื ืฉื ืฆื ืฉืืืฉื, ืืืืืฅ ืืืฉืชืืฉ ืืกื ืืฃ ืืจืืฉื, ืฉืขื ืืกืืกื ื ืืฆืจืืช ืืืืืจืืช ืฉื ืืืืฆืจ ืืืกืืจื Nginx Plus ืื ืฉืืืฉื ืืืืฉืื.
ืขื ืคื ืืื ืืืจืก ืฉื Netcraft, nginx ื ืืฆื ืืฉืืืืฉ ื-20.15% ืืืื ืืืชืจืื ืืคืขืืืื (ืืคื ื ืฉื ื 19.56%, ืืคื ื ืฉื ืชืืื 20.73%), ืื ืฉืืชืืื ืืืงืื ืืฉื ื ืืคืืคืืืจืืืช ืืงืืืืจืื ืื (ืื ืชื ืฉื Apache ืืชืืื ื-25.38% (ืืคื ื ืฉื ื 27.64%), ืืืื - 10.09%, Cloudflare - 8.51%. ืืืงืืื, ืืฉืืืื ืื ืืช ืื ืืืชืจืื, nginx ืฉืืืจืช ืขื ืืืืืื ืฉืื ืืชืืคืกืช 35.34% ืืืฉืืง (ืืคื ื ืฉื ื 36.91%, ืืคื ื ืฉื ืชืืื - 27.52%), ืืขืื ืฉืื ืชื ืฉื Apache ืชืืื ื-25.98%, OpenResty (ืคืืืคืืจืื ืืืืกืกืช nginx ื-LuaJIT.) - 6.55%, Microsoft IIS - 5.96%.
ืืื ืืืืืื ืืืชืจืื ืืืืืงืจืื ืืืืชืจ ืืขืืื, ืืืงื ืฉื nginx ืืื 25.55% (ืืคื ื ืฉื ื 25.54%, ืืคื ื ืฉื ืชืืื 26.22%). ื ืืื ืืขืืฉืื, ื-419 ืืืืืื ืืชืจืื ืืจืืฆืื ืืช Nginx (459 ืืืืืื ืืคื ื ืฉื ื). ืืคื W3Techs, ื ืขืฉื ืฉืืืืฉ ื-nginx ื-33.7% ืืืืชืจืื ืืชืื ืืืืืื ืืืืืฉืื ืืืืชืจ, ืืืคืจืื ืืฉืชืงื ืขืื ืื ืชืื ืืื ืขื 31.9%, ืืฉื ื ืฉืืคื ื ืื - 41.8% (ืืืจืืื ืืืกืืจืช ืืืขืืจ ืืืฉืืื ืืืช ื ืคืจืืช ืฉื ื-Cloudflare http ืฉืจืช). ืื ืืืช ืืคืืฆ'ื ืืจืื ืืืืื ืืฉื ื ื-39.5% ื-34%, ืืื ืืืช Microsoft IIS ื-8.3% ื-7%. ืืืงื ืฉื LiteSpeed โโืฆืื ื-6.3% ื-8.4%, ื-Node.js ื-0.8% ื-1.2%. ืืจืืกืื, ื ืขืฉื ืฉืืืืฉ ื-nginx ื-79.1% ืืืืชืจืื ืืืืืงืจืื ืืืืชืจ (ืืคื ื ืฉื ื - 78.9%).
ืืฉืืคืืจืื ืืืืืืื ืืืืชืจ ืฉื ืืกืคื ืืืืื ืืคืืชืื ืฉื ืขื ืฃ 1.19.x ืืืขืื ืืืจื:
- ื ืืกืคื ืืืืืืช ืืืืช ืชืขืืืืช ืืงืื ืืืืฆืขืืช ืฉืืจืืชืื ืืืฆืื ืืื ืืืืืกืกืื ืขื ืคืจืืืืงืื OCSP (Online Certificate Status Protocol). ืืื ืืืคืฉืจ ืืช ืืืืืงื, ืืืฆืขืช ืืื ืืื ssl_ocsp, ืืื ืืืืืืจ ืืช ืืืื ืืืืืื - ssl_ocsp_cache, ืืื ืืืืืืจ ืืืืฉ ืืช ืืชืืืช ืืืชืจ ืฉื ืืืืคื OCSP ืฉืฆืืื ืืืืฉืืจ - ssl_ocsp_responder.
- ืืืืื ngx_stream_set_module ืืืื, ืืืืคืฉืจ ืื ืืืงืฆืืช ืขืจื ืืฉืจืช ืืืฉืชื ื { listen 12345; ืืืืจ $true 1; }
- ื ืืกืคื ืืืจืืช proxy_cookie_flags ืืฆืืื ืืืืื ืขืืืจ ืงืืืฆื Cookie ืืืืืืจื ืคืจืืงืกื. ืืืืืื, ืืื ืืืืกืืฃ ืืช ืืืื "httponly" ื-Cookie "one", ืืืช ืืืืืื "nosecure" ื-"samesite=strict" ืขืืืจ ืื ืฉืืจ ืืขืืืืืช, ืืชื ืืืื ืืืฉืชืืฉ ืืืื ื ืืื: proxy_cookie_flags one httponly; proxy_cookie_flags ~ nosecure samesite=strict;
ืื ืืืืช userid_flags ืืืื ืืืืกืคืช ืืืืื ืืงืืืฆื Cookie ืืืืฉืืช ืื ืขืืืจ ืืืืื ngx_http_userid.
- ื ืืกืคื ืื ืืืืช "ssl_conf_command", "proxy_ssl_conf_command", "grpc_ssl_conf_command" ื-"uwsgi_ssl_conf_command", ืฉืืืืฆืขืืชื ื ืืชื ืืืืืืจ ืคืจืืืจืื ืฉืจืืจืืชืืื ืืืืืจืช OpenSSL. ืืืืืื, ืืื ืืชืขืืฃ ืฆืคื ื ChaCha ืืชืฆืืจื ืืชืงืืืช ืฉื ืฆืคื ื TLSv1.3, ืืชื ืืืื ืืฆืืื ssl_conf_command Options PrioritizeChaCha; ssl_conf_command Ciphersuites TLS_CHACHA20_POLY1305_SHA256;
- ื ืืกืคื ืื ืืืืช "ssl_reject_handshake", ืืืืจื ืืืืืช ืืช ืื ืื ืืกืืื ืืช ืื ืื ืืฉื ืืืชื ืขื ืืืืืจื SSL (ืืืืืื, ื ืืชื ืืืฉืชืืฉ ืื ืืื ืืืืืช ืืช ืื ืืฉืืืืช ืขื ืฉืืืช ืืืจืืื ืื ืืืืขืื ืืฉืื SNI). ืฉืจืช { ืืืื ื 443 ssl; ssl_reject_shake on; } ืฉืจืช { ืืืื ื 443 ssl; server_name example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
- ืืื ืืื proxy_smtp_auth ื ืืกืคื ื-proxy ืืืืืจ, ืืืืคืฉืจืช ืื ืืืืช ืืช ืืืฉืชืืฉ ื-backend ืืืืฆืขืืช ืคืงืืืช AUTH ืืื ืื ืื PLAIN SASL.
- ื ืืกืคื ืืื ืืื "keepalive_time", ืืืืืืื ืืช ืืฉื ืืืืื ืืืืื ืฉื ืื ืืืืืจ Keep-alive, ืฉืืืืจืื ืืืกืืจ ืืืืืืจ (ืื ืืืชืืืื ืขื keepalive_timeout, ืฉืืืืืจ ืืช ืืื ืืืกืจ ืืคืขืืืืช ืฉืืืจืื ืืืกืืจ ืืืืืจ Keep-alive).
- ื ืืกืฃ ืืฉืชื ื $connection_time, ืฉืืจืื ื ืืชื ืืงืื ืืืืข ืขื ืืฉื ืืืืืืจ ืืฉื ืืืช ืืืืืง ืฉื ืืืคืืืช ืืฉื ืืื.
- ืคืจืืืจ "min_free" ื ืืกืฃ ืืื ืืืืช "proxy_cache_path", "fastcgi_cache_path", "scgi_cache_path" ื-"uwsgi_cache_path", ืืฉืจ ืืกืืืจ ืืช ืืืื ืืืืืื ืขื ืกืื ืงืืืขืช ืืืืื ืืืื ืืืื ืฉื ืฉืื ืืืกืง ืคื ืื.
- ืื ืืืืช "ืืชืืืืืืช_ืกืืืจ", "ืืื_ืืฉืื" ื-"ืืื ืงืฆืื_ืืฉืื" ืืืชืืื ืืขืืืื ืขื HTTP/2.
- ืงืื ืขืืืื ืืืืืืจ ื-HTTP/2 ืงืจืื ืืืืืืฉ HTTP/1.x. ืืชืืืื ืืืืืจืืช ืืืืฉืืืช "http2_recv_timeout", "http2_idle_timeout" ื-"http2_max_requests" ืืืคืกืงื ืืืืืช ืืื ืืืืช ืืืืืืืช "keepalive_timeout" ื-"keepalive_requests". ืืืืืจืืช "http2_max_field_size" ื-"http2_max_header_size" ืืืกืจื ืืืืงืื ืืืช ืืฉ ืืืฉืชืืฉ ื-"large_client_header_buffers".
- ื ืืกืคื ืืคืฉืจืืช ืืืฉื ืฉื ืฉืืจืช ืืคืงืืื "-e", ืืืืคืฉืจืช ืื ืืฆืืื ืงืืืฅ ืืืืคื ืืืชืืืช ืืืื ืืฉืืืืืช, ืืฉืจ ืืฉืืฉ ืืืงืื ืืืืื ืฉืฆืืื ืืืืืจืืช. ืืืงืื ืฉื ืืงืืืฅ, ืืชื ืืืื ืืฆืืื ืืช ืืขืจื ืืืืืื stderr.
ืืงืืจ: OpenNet.ru