: . . , nginx.
: 2016 . , , changelog !
: ! . , , , nginx. changelog . , changelog. .
W3Techs, nginx . , Debian 6, , . nginx, .
97%. , , 3 , , - , , - .
, . , 50% 1.10, 5% , , mainline 1.11. , , , , - , , , nginx , .
, , , 1.10 1.11.
, 1.9 1.10.
, -, , , IP , , NAT ( , , ), Real_IP- , proxy-, X-Real-IP.
. , ? 3 . , .
. http, GET- , , , , . http GET- - , . , , GET- . GET . http , POST LOCK PATCH.
? , nginx - - , . , . , POST-, . , , , , , , , . , , , nginx , .. .
nignx , , POST-. GET- , . POST- . , . : proxy_next_upstream non_idempotent.
. nginx , . : , : OK, , - .
. , , , . , nginx thread, , aio_write thread. thread. , - posix aio.
, , .
, , nginx , . , , .. , : , . . , , , - . , , , , syscall, . , , , cache manager.
, -.
, . . , , - , , , . , nginx .
, HighLoad++. , , YouTube.
, , nginx , , . , , : nginx , !, : nginx V , . , .
, . dynamic. - , add-module add-dynamic-module. .
, , . , , . config-, , auto-.
, . nginx-, , .
- .
, auto- . , .
CPU affinity.
Nginx CPU affinity, . - . .. , , . , 2- , 4- . , 64-, , , 64 64 , . , PERL- , . , auto, . , , nginx . - . , nginx, .
, . , 4 40 , - . Nginx, , , , , range-. range- - 2 , nginx , , , , . Latency . - , . , - , , . , , .
? , . slice, .
. , , . . , , , , . , , , ? . nginx , , , , , . , , .
, SPDY , HTTP/2. , . , latency. - , - . , , , , , google chrome . , , , nginx workaround . - , , , , .
, , SPDY, nginx. , . , . , .
sub_filter , sub_filter . , , , . , sub_filter, , - . highload .
. , , . . . , . ? accept_mutex, . 25 . - , , .
accept_mutex. - 2- , , 3- , 60 . , . ? , listen-. listen-, contention listen-.
? listen-. . , IP-, . , IP-, , , reuseport. nginx listen-, so_ reuseport.
Linux , DragonFly BSD , , , . Linux, , . , nginx listen- . - listen- , . Linux .
? - 8- . . ? , nginx. 8 nginx, 16 , , . , - .
, Stream. , HTTP. , , HTTP, , . 1.9 1.10. , HTTP, Round-robin , IP hash . SSL , SSL . , , proxy- . UDP, , -. UDP- , . , , DNS, , , Stream. - UDP, , , . TCP- , .
. Resolver UDP, TCP. , 30 -, DNS- 512 UDP-. Resolver , truncate TCP . .. Resolver, , . upstream . state . .. , , . , , , , , nginx.
Windows ASLR, .. Vista . nginx Windows, . , nginx Windows , . . .
SSLv3 . , , , .
$upstream_connect_time, , .
-T. , support, , , , . . , . .
OpenSSL -V. , , , OpenSSL nginx . nginx OpenSSL, OpenSSL, .
, 1.9. 1.10.2.
1.11. mainline-, . 1.11.5. ?
Stream . , Stream . , map, geo, geoip, split_clients, real ip, access log, return. map, limit_conn, . , , HTTP.
, Stream SSL-, , SSL. ? server_name, , , . client_hello server_name. , , . , , , . client_hello, ssl_preread, nginx , , ssl_preread_server_name.
, .. max_conns, nginx . NGINX Plus. open source , , , .
transparent proxy. , , HTTP , , , proxy- , . , , , , . , nginx , - .
proxy_bind transparent, bind , . , remote_addr, .. , bind . , , , transparent proxy . root, . , , . , legay-, X-Forwarded-For X-Real-IP .
, , , IP-? IP-. ?
65 535 . destination- , , , 65 535. , , 128 . 10 , , .
proxy_bind IP-. 65 . ? bind , , . , , , , 65 . , 65 , proxy_bind.
? . Linux IP_BIND_ADDRESS_NO_PORT, bind, , , , , , , connect, , . , bind.
accept mutex. , , accept mutex? thundering herd. listen- , listen-, .. , . , , , . , - , , , , . , , .
. , -, , - , , -, . . accept mutex, , , . , , - , , , nginx , , , , nginx . , , , , , .
, accept mutex Windows, Windows . accept mutex, Windows . , , accept mutex Windows . , .
listen reuseport accept mutex , listen-. , , Linux EPOLLEXCLUSIVE, , , . , - , .. , - . nginx . accept mutex , EPOLLEXCLUSIVE .
Linux, , , Linux - , , , , , - , , accept mutex.
SSL . SSL , handshake. handshake , . RSA ECDSA, .. . RSA , , , , , . , Windows XP. , Windows XP 5 10%. , ECDSA-, , 5% . , , .
? ( ). SSL speed, , RSA 400 , , ECDSA 5000 , . penSSL. , forward secrecy, . handshake nginx , 300 handshake RSA, 1000 handshake ECDSA. .
, , . nginx: , , nginx . ECDSA, ECDSA, . , RSA.
, SSL , OpenSSL. , prime256v1, auto. Auto , OpenSSL . 25519, prime256v1, . , , . .
dhparam - . . nginx , , DHE-, .. forward secrecy - . , , , .
. , , , nginx . Nginx, - , - , , nginx . , , , nginx, .
. nginx , . , - . , . , , nginx . configure --with-compat, , , , nginx . , nginx , - , , with-compat, nginx, with-compat.
, NGINX Plus. - NGINX Plus , , NGINX Plus.
:
- EPOLLRDHUP Linux. , , , syscall , .
- HTTP/2 , .
- Map .
- $request_id, .
1.11.5. .
nignx . FreeBSD, , Linux, , , , . . . , , .
!
mdounin@mdounin.ru
Nginx
HighLoad++.
2017- HighLoad++
. , !
https://habrahabr.ru/post/334194/