SlideShare a Scribd company logo
1 of 45
Download to read offline
Что нового в nginx?
Максим	
  Дунин	
  
Про ложь, наглую ложь и статистику
•  nginx	
  0.x.x:	
  более	
  20%	
  
(данные	
  w3techs.com,	
  
openstat.ru)	
  
•  Debian	
  Squeeze	
  (oldstable):	
  
nginx	
  0.7.67	
  

0.x.x	
  

21	
  

1.0.x	
  

18	
  
7.5	
  

1.1.x	
  
1.2.x	
  
1.3.x	
  

28	
  
1.5	
  
22	
  

1.4.x	
  
1.5.x	
  

1.8	
  
Немного о версионировании
•  0.x.x:	
  давно	
  и	
  неправда	
  
•  1.0.x,	
  1.2.x,	
  1.4.x,	
  …	
  
стабильные	
  версии,	
  стабильное	
  API,	
  критические	
  и	
  security-­‐
исправления	
  
•  1.1.x,	
  1.3.x,	
  1.5.x,	
  …	
  
основные	
  версии	
  (mainline),	
  новая	
  функциональность	
  тут,	
  
producfon	
  ready	
  
Актуально:	
  1.5.6,	
  1.4.3	
  
Всё	
  остальное	
  -­‐	
  использовать	
  не	
  рекомендуется.	
  
	
  
Новое в nginx 1.1.x
Улучшения	
  cache	
  loader,	
  keepalive	
  с	
  бекендами,	
  поддержка	
  криптографии	
  на	
  
эллиптических	
  кривых	
  (привет,	
  NSA!),	
  оптимизация	
  потребления	
  памяти	
  
SSL-­‐соединениями,	
  применение	
  нескольких	
  limit_conn	
  и	
  limit_req	
  одновременно,	
  
MP4	
  streaming	
  в	
  коробке,	
  proxy_cache_lock,	
  регулярные	
  выражения	
  в	
  proxy_redirect,	
  
disable_symlinks	
  для	
  shared-­‐хостинга,	
  а	
  также	
  поддержка	
  PCRE	
  JIT	
  для	
  тех,	
  кто	
  любит	
  
регулярные	
  выражения.	
  
	
  
Новое в nginx 1.1.x
•  Улучшения	
  cache	
  loader	
  
•  Keepalive	
  с	
  бекендами	
  
•  Поддержка	
  криптографии	
  на	
  эллиптических	
  кривых	
  (ECDHE)	
  
•  Оптимизация	
  потребления	
  памяти	
  SSL-­‐соединениями	
  
•  Применение	
  нескольких	
  limit_conn	
  и	
  limit_req	
  одновременно	
  
•  MP4	
  streaming	
  в	
  коробке	
  
•  proxy_cache_lock
•  Регулярные	
  выражения	
  в	
  proxy_redirect
•  disable_symlinks	
  для	
  shared-­‐хостинга	
  
•  Поддержка	
  PCRE	
  JIT	
  
Улучшения cache loader
•  Теперь	
  nginx	
  обходится	
  данными	
  от	
  readdir(),	
  
не	
  пытаясь	
  читать	
  файлы	
  кеша	
  
•  Алгоритм	
  хорошо	
  работает	
  с	
  SSD	
  
•  Гибкая	
  конфигурация	
  загрузки:	
  
loader_files,	
  loader_sleep,	
  loader_threshold
•  Кеш	
  6	
  млн.	
  файлов	
  /	
  400	
  Гб	
  загружается	
  за	
  50	
  минут	
  без	
  потери	
  
производительности	
  сервера	
  (ранее	
  –	
  2	
  cуток)	
  
Keepalive с бекендами
•  Поддержка	
  постоянных	
  соединений	
  с	
  бекендами	
  
•  Работает	
  с:	
  
•  proxy_pass	
  
•  fastcgi_pass	
  
•  memcached_pass	
  

	
  
Keepalive с бекендами
Пример:	
  
upstream memd {
server 127.0.0.1:11211;
keepalive 42;
}
location / {
memcached_pass memd;
}
Elliptic curve Diffie–Hellman (ECDH)
Forward	
  secrecy	
  
по	
  разумной	
  цене	
  
	
  
•  Нюанс:	
  нужно	
  собрать	
  с	
  
правильным	
  OpenSSL	
  
•  Lavabit	
  court	
  order	
  
•  Bruce	
  Schneier	
  
recommendafons	
  
	
  

800	
  

RSA	
  

DHE	
  

ECDHE	
  

350	
  

200	
  

1024	
  bit,	
  r/s	
  
2048	
  bit,	
  r/s	
  

32	
  

300	
  
190	
  
Память и SSL-соединения
Было:	
  
•  64k	
  на	
  соединение	
  
•  или	
  даже	
  600k	
  на	
  соединение	
  (сжатие!)	
  
Стало:	
  
•  16k	
  на	
  соединение	
  
(В	
  nginx	
  1.3.2+	
  -­‐	
  сжатие	
  запрещено	
  во	
  всех	
  версиях	
  OpenSSL,	
  включая	
  
0.9.x,	
  где	
  отсутствует	
  соответствующая	
  опция.)	
  
Несколько limit_conn одновременно
Ограничить	
  количество	
  соединений	
  с	
  одного	
  IP-­‐адреса	
  и	
  
количество	
  соединений	
  к	
  одному	
  серверу:	
  
limit_conn_zone $binary_remote_addr zone=conn_addr:10m;
limit_conn_zone $server_name
zone=conn_name:10m;
server {
...
limit_conn addr 5;
limit_conn name 10;
...
}
Несколько limit_req одновременно
Ограничить	
  количество	
  запросов	
  в	
  секунду	
  с	
  одного	
  IP-­‐адреса	
  и	
  
количество	
  запросов	
  в	
  секунду	
  к	
  одному	
  серверу:	
  
	
  
limit_req_zone $binary_remote_addr zone=req_addr:10m rate=1r/s;
limit_req_zone $server_name
zone=req_name:10m rate=5r/s;
server {
...
limit_req zone=addr burst=5 nodelay;
limit_req zone=name burst=10 nodelay;
...
}
MP4 http pseudo streaming в коробке
Пример:	
  
	
  
location /mp4/ {
mp4;
}
proxy_cache_lock
Пример:	
  
	
  
location / {
proxy_pass http://backend;
proxy_cache one;
proxy_cache_lock on;
proxy_cache_use_stale updating;
}
	
  
Если	
  более	
  одного	
  запроса	
  хотят	
  загрузить	
  в	
  кеш	
  новый	
  документ	
  –	
  
только	
  один	
  уйдёт	
  на	
  бекенд,	
  остальные	
  запросы	
  будут	
  ждать.	
  
Регулярные выражения в proxy_redirect
•  Директиву	
  proxy_redirect	
  теперь	
  можно	
  использовать	
  с	
  
регулярными	
  выражениями:	
  
	
  
proxy_redirect ~/user/([^/]+)/(.+)$
http://$1.example.com/$2;
•  Директивы	
  proxy_cookie_path,	
  proxy_cookie_domain	
  для	
  
изменения	
  кук	
  при	
  проксировании:	
  
	
  
proxy_cookie_domain localhost example.org;
proxy_cookie_path
/two/
/;
Директива disable_symlinks
Пример:	
  
	
  
disable_symlinks on;
	
  
Или,	
  более	
  гуманно,	
  но	
  дороже:	
  
	
  
disable_symlinks if_not_owner;
	
  
Нюанс:	
  работает	
  это	
  только	
  на	
  современных	
  операционных	
  системах,	
  
поддерживающих	
  openat().	
  	
  Без	
  этого	
  сделать	
  соответствующую	
  
проверку	
  без	
  race	
  condifon'а	
  нельзя.	
  
	
  
PCRE JIT
Пример:	
  
	
  
pcre_jit on;
	
  
Использовать	
  с	
  осторожностью	
  -­‐	
  замедляет	
  на	
  некоторых	
  нагрузках.	
  
Пример:	
  
	
  
rewrite /((ab?)*)*bb /foo;
	
  
Включение	
  PCRE	
  JIT	
  ускоряет	
  обработку	
  запросов	
  к	
  “/aaaaaaaaaaaaaaaaaaab”	
  в	
  
10	
  раз.	
  
Новое в nginx 1.3.x
Улучшения	
  в	
  поддержке	
  IPv6,	
  балансировщик	
  least_conn,	
  поддержка	
  ETag	
  (а	
  
значит,	
  докачка	
  в	
  IE9+),	
  gunzip	
  и	
  возможность	
  хранить	
  ресурсы	
  сжатыми,	
  OCSP	
  
Stapling,	
  SPDY,	
  поддержка	
  передачи	
  тела	
  запроса	
  chunk'ами,	
  проксирование	
  
WebSocket'ов	
  и	
  возможность	
  писать	
  логи	
  уже	
  сжатыми.	
  
Новое в nginx 1.3.x
•  Улучшения	
  в	
  поддержке	
  IPv6	
  
•  Балансировщик	
  least_conn	
  
•  Поддержка	
  ETag	
  (а	
  значит,	
  докачка	
  в	
  IE9+)	
  
•  Фильтр	
  gunzip	
  и	
  возможность	
  хранить	
  ресурсы	
  сжатыми	
  
•  OCSP	
  Stapling	
  
•  SPDY	
  
•  Поддержка	
  передачи	
  тела	
  запроса	
  chunk'ами	
  
•  Возможность	
  писать	
  логи	
  уже	
  сжатыми	
  
•  Проксирование	
  WebSocket'ов	
  
Улучшения в поддержке IPv6
IPv6	
  поддерживается	
  практически	
  везде:	
  
	
  
•  Geo,	
  geoip,	
  бекенды,	
  access-­‐проверки	
  
и	
  т.п.	
  
Одно	
  из	
  немногих	
  исключений	
  -­‐	
  встроенный	
  resolver.	
  	
  Мы	
  
работаем	
  над	
  этим.	
  
Балансировщик least_conn
Пример:	
  
	
  
upstream u {
least_conn;
server 192.0.2.1;
server 192.0.2.2;
}
•  Выбирается	
  бекенд,	
  к	
  которому	
  установлено	
  меньше	
  всего	
  соединений	
  
•  Удобно	
  для	
  балансировки	
  бекендов,	
  где	
  соединения	
  ==	
  загрузка.	
  
Т.е.	
  почти	
  всегда.	
  
Поддержка ETag
•  Докачка	
  в	
  IE9+	
  
•  Обработка	
  запросов	
  из	
  кеша	
  
•  ETag	
  статических	
  файлов	
  не	
  включает	
  номер	
  i-­‐node,	
  нет	
  
проблемы	
  с	
  раздачей	
  файлов	
  с	
  нескольких	
  серверов	
  
(как	
  ранее	
  в	
  Apache)	
  
Gunzip: храним ресурсы сжатыми
	
  
•  Разжимаем	
  сжатые	
  ответы	
  на	
  лету	
  –	
  
если	
  клиент	
  не	
  понимает	
  gzip	
  
•  Понимают	
  gzip	
  -­‐	
  более	
  95%	
  
Gunzip: храним ресурсы сжатыми
Экономим	
  немного	
  трафика	
  к	
  бекендам:	
  
location /proxy/ {
gunzip on;
proxy_pass ...
proxy_set_header Accept-Encoding gzip;
}
Gunzip: храним ресурсы сжатыми
Экономим	
  память	
  в	
  memcached:
	
  
location /memd/ {
gunzip on;
memcached_gzip_flag 2;
memcached_pass ...
}
Gunzip: храним ресурсы сжатыми
Экономим	
  диск	
  и	
  память	
  под	
  файловый	
  кеш:
	
  
location /store/ {
gunzip on;
gzip_static always;
}
OCSP Stapling
•  OCSP	
  –	
  Online	
  Cerfficate	
  Status	
  Protocol	
  
•  Прикрепление	
  свежего	
  OCSP-­‐ответа	
  к	
  сертификату,	
  
отправляемому	
  при	
  SSL	
  handshake	
  
•  Экономим	
  ресурсы	
  клиентов	
  
	
  
	
  
OCSP Stapling
Пример:	
  
	
  
server {
listen 443 ssl;
ssl_certificate foo.crt;
ssl_certificate_key foo.key;
ssl_stapling on;
resolver 192.0.2.1;
}
	
  
SPDY
Пример:	
  
	
  
server {
listen 443 ssl spdy;
...
}
	
  
Экспериментальный	
  модуль	
  для	
  работы	
  по	
  экспериментальному	
  
протоколу.	
  Можно	
  использовать	
  без	
  SSL,	
  но	
  не	
  с	
  браузерами.	
  
	
  
Chunked request body
•  Ранее	
  не	
  было	
  –	
  потому	
  что	
  почти	
  не	
  надо,	
  хотя	
  HTTP/1.1	
  требует	
  
•  Используется	
  WebDAV-­‐клиентами,	
  Java-­‐приложениями	
  
•  Позволяет	
  делать	
  так:	
  
	
  
$ ./script.pl |
curl --upload-file - http://example.com/
без	
  временных	
  файлов.	
  
Возможность писать логи уже сжатыми
Пример:	
  
	
  
access_log /path/to/access.log.gz combined gzip;
	
  
Дополнительные	
  параметры:	
  
	
  
buffer=64k
flush=1s
	
  
Занимает	
  мало	
  памяти	
  и	
  очень	
  немного	
  процессора.	
  	
  
Добавляет	
  счастья.	
  
Проксирование WebSocket'ов
Пример:	
  
	
  
location /chat/ {
proxy_pass …
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
	
  
Нюанс:	
  WebSocket'ы	
  используют	
  механизм	
  Upgrade	
  в	
  HTTP/1.1,	
  и	
  он	
  не	
  рассчитан	
  на	
  
работу	
  через	
  прокси.	
  	
  В	
  случае	
  forward	
  proxy	
  спецификация	
  WebSocket'ов	
  предлагает	
  
использовать	
  CONNECT,	
  а	
  для	
  reverse	
  proxy	
  -­‐	
  приходится	
  явно	
  писать	
  конфигурацию.	
  
Новое в nginx 1.5.x
(still counting)
Поддержка	
  EPOLLRDHUP	
  на	
  Linux,	
  использование	
  O_PATH	
  для	
  disable_symlinks	
  на	
  
Linux,	
  несколько	
  директив	
  error_log	
  одновременно,	
  SMTP	
  pipelining,	
  очередные	
  
оптимизации	
  SSL,	
  proxy_ssl_protocols	
  и	
  proxy_ssl_ciphers,	
  модуль	
  auth	
  request,	
  
небуферизированная	
  работа	
  с	
  FastCGI-­‐бекендами	
  (fastcgi_buffering)	
  для	
  тех,	
  кому	
  
нужен	
  streaming	
  ответов.	
  
	
  
Новое в nginx 1.5.x (still counting)
•  Поддержка	
  EPOLLRDHUP	
  на	
  Linux	
  
•  Использование	
  O_PATH	
  для	
  disable_symlinks	
  на	
  Linux	
  
•  Несколько	
  директив	
  error_log	
  одновременно	
  
•  SMTP	
  pipelining	
  
•  Очередные	
  оптимизации	
  SSL	
  
•  Директивы	
  proxy_ssl_protocols	
  и	
  proxy_ssl_ciphers	
  
•  Модуль	
  auth	
  request	
  
•  Небуферизированная	
  работа	
  с	
  FastCGI-­‐бекендами	
  (fastcgi_buffering)	
  	
  
для	
  тех,	
  кому	
  нужен	
  streaming	
  ответов	
  
Поддержка EPOLLRDHUP на Linux
Выясняем,	
  закрыл	
  ли	
  клиент	
  соединение:	
  
	
  
•  Универсальный	
  метод	
  -­‐	
  recv(MSG_PEEK)	
  
•  Нет	
  информации,	
  если	
  присутствуют	
  непрочитанные	
  данные	
  

•  Платформо-­‐специфичные	
  методы:	
  
•  kqueue	
  –	
  EV_EOF	
  
•  epoll	
  –	
  EPOLLRDHUP	
  

•  Помогает	
  при	
  long	
  polling	
  
O_PATH для disable_symlinks на Linux
•  Linux	
  не	
  умеет	
  O_SEARCH	
  
•  При	
  использовании	
  disable_symlinks	
  
на	
  промежуточных	
  каталогах	
  нужны	
  права	
  r-­‐x	
  
•  Но	
  в	
  2.6.39+	
  есть	
  O_PATH,	
  очень	
  похожий	
  
•  Достаточно	
  прав	
  -­‐-­‐x	
  
SMTP pipelining
•  И	
  разные	
  другие	
  мелкие	
  улучшения	
  почтового	
  прокси-­‐сервера	
  
•  Имеет	
  смысл	
  обратить	
  внимание,	
  если	
  вы	
  используете	
  nginx	
  в	
  
качестве	
  почтового	
  прокси-­‐сервера	
  
Очередные оптимизации SSL
•  Убран	
  лишний	
  round-­‐trip	
  при	
  использовании	
  длинных	
  цепочек	
  
сертификатов	
  
•  Просто	
  перестало	
  хватать	
  4k	
  буфера,	
  используемого	
  OpenSSL	
  для	
  
буферизации	
  записи	
  во	
  время	
  handshake’а	
  
Директивы proxy_ssl_protocols,
proxy_ssl_ciphers
Позволяют:	
  
	
  
•  Улучшить	
  совместимость	
  с	
  различными	
  HTTPS-­‐бекендами	
  
•  Ускорить	
  работу	
  
•  Потребовать	
  forward	
  secrecy	
  
Модуль auth request
•  Аутентификация	
  и	
  авторизация	
  через	
  подзапрос,	
  в	
  том	
  числе	
  –	
  
внешними	
  средствами	
  
•  Если	
  подзапрос	
  вернул	
  200	
  –	
  доступ	
  разрешён,	
  иначе	
  –	
  нет	
  

•  Что-­‐то	
  вроде	
  fastcgi	
  authorizers	
  
•  Удобнее,	
  чем	
  X-Accel-Redirect
•  Лучше,	
  чем	
  блокирующиеся	
  сторонние	
  модули	
  auth_pam	
  и	
  
auth_ldap	
  
Модуль auth request
	
  Например,	
  так:	
  
	
  
location / {
auth_request /auth;
}
location = /auth {
proxy_pass ...
}
Небуферизированная работа с
FastCGI-бекендами
Пример:	
  
	
  
fastcgi_buffering off;
	
  
Или	
  даже	
  так,	
  в	
  заголовках	
  ответа	
  FastCGI-­‐приложения:	
  
	
  
Status: 200 OK
X-Accel-Buffering: no
...
	
  
Для	
  тех,	
  кому	
  нужен	
  streaming	
  ответов	
  или	
  прогрессивная	
  загрузка	
  
страниц.	
  
	
  
Где взять свежий nginx?
•  Исходные	
  коды,	
  как	
  обычно:	
  
h¦p://nginx.org/ru/download.html	
  
•  Для	
  FreeBSD:	
  
используйте	
  порты	
  nginx	
  и	
  nginx-­‐devel,	
  там	
  всё	
  новое	
  
Спасибо	
  Сергею	
  Осокину!	
  
•  Для	
  Linux	
  разных	
  версий:	
  
системные	
  пакеты	
  -­‐	
  обычно	
  старые,	
  свежие	
  пакеты	
  доступны	
  на	
  
h¦p://nginx.org/ru/linux_packages.html	
  
Вопросы?

Максим	
  Дунин	
  
mdounin@mdounin.ru	
  
NGINX Plus
Коммерческая	
  версия.	
  
Дополнительная	
  функциональность:	
  
	
  
•  Advanced	
  load	
  balancing:	
  

•  Dynamic	
  upstream	
  reconfigurafon,	
  acfve	
  health	
  checks,	
  sfcky	
  balancing	
  

•  Advanced	
  video	
  streaming:	
  
•  HTTP	
  Live	
  streaming	
  
•  HTTP	
  Dynamic	
  streaming	
  

•  Advanced	
  logging:	
  

•  Remote	
  logging	
  via	
  syslog	
  protocol,	
  session	
  logging	
  

•  Status	
  module	
  

More Related Content

What's hot

Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...Ontico
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Ontico
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Ontico
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)Ontico
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)Ontico
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Ontico
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Ontico
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Ontico
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)AvitoTech
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайOntico
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Ontico
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Ontico
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Ontico
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Ontico
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Ontico
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...odnoklassniki.ru
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Ontico
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)Ontico
 

What's hot (20)

Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт... Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
Архитектура растущего проекта на примере ВКонтакте / Алексей Акулович (ВКонт...
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 
Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)Реализация восстановления после аварий / Сергей Бурладян (Avito)
Реализация восстановления после аварий / Сергей Бурладян (Avito)
 
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
MySQL 5.7 - NoSQL - JSON, Protocol X, Document Store / Петр Зайцев (Percona)
 
RootConf 2015
RootConf 2015RootConf 2015
RootConf 2015
 
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
5 способов деплоя PHP-кода в условиях хайлоада / Юрий Насретдинов (Badoo)
 
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
Тюним память и сетевой стек в Linux: история перевода высоконагруженных серве...
 
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
Жизнь проекта на production советы по эксплуатации / Николай Сивко (okmeter.io)
 
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
Системный администратор Vkontakte. Как? / Антон Кирюшкин (Vkontakte)
 
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
"Кластеры баз данных: делаем сложные вещи просто" Андрей Тихонов (Avito)
 
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов НиколайnoBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
noBackend, или Как выжить в эпоху толстеющих клиентов / Самохвалов Николай
 
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
Flashcache в mamba.ru / Яковлев Александр Юрьевич (ЗАО Мамба)
 
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
Девять кругов ада или PostgreSQL Vacuum / Алексей Лесовский (PostgreSQL-Consu...
 
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
Отказоустойчивый микрокластер своими руками, Виталий Гаврилов (Ленвендо)
 
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
Мониторинг ожиданий в PostgreSQL / Курбангалиев Ильдус (Postgres Professional)
 
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
Защита данных и датацентров от катастроф. Подход Nutanix / Максим Шапошников ...
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)Что нового в nginx? / Максим Дунин (Nginx, Inc.)
Что нового в nginx? / Максим Дунин (Nginx, Inc.)
 
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
«Секретные» технологии инвестиционных банков / Алексей Рагозин (Дойче Банк)
 

Viewers also liked

Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)Ontico
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)Ontico
 
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...Ontico
 
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...Ontico
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...Ontico
 
Сети для самых маленьких. Часть восьмая. BGP и IP SLA
Сети для самых маленьких. Часть восьмая. BGP и IP SLAСети для самых маленьких. Часть восьмая. BGP и IP SLA
Сети для самых маленьких. Часть восьмая. BGP и IP SLANatasha Samoylenko
 

Viewers also liked (6)

Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
Масштабируемая конфигурация Nginx, Игорь Сысоев (Nginx)
 
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
nginx.CHANGES.2015 / Игорь Сысоев, Валентин Бартенев (Nginx)
 
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
Как мы сделали ровную балансировку нагрузки на фронтенд-кластере / Насретдино...
 
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
Как и зачем создавать NginX-модуль - теория, практика, профит / Василий Сошни...
 
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...OpenResty: превращаем NGINX в полноценный сервер приложений  / Владимир Прота...
OpenResty: превращаем NGINX в полноценный сервер приложений / Владимир Прота...
 
Сети для самых маленьких. Часть восьмая. BGP и IP SLA
Сети для самых маленьких. Часть восьмая. BGP и IP SLAСети для самых маленьких. Часть восьмая. BGP и IP SLA
Сети для самых маленьких. Часть восьмая. BGP и IP SLA
 

Similar to Максим Дунин, Nginx, Inc.

мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1rit2011
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSYandex
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_drupalconf
 
Magento performance
Magento performanceMagento performance
Magento performanceaheadWorks
 
VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?Anton Zhbankov
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими рукамиStanislavMalkin
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...AvitoTech
 
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Ontico
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Николай Лавлинский
 
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)Ontico
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor SysoevMedia Gorod
 
Выступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance ConferenceВыступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance ConferenceEYevseyeva
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Ontico
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Ontico
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDAndrew Pantyukhin
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеit-people
 

Similar to Максим Дунин, Nginx, Inc. (20)

мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1мои модули и патчи для Nginx. максим дунин. зал 1
мои модули и патчи для Nginx. максим дунин. зал 1
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
Hosting for forbes.ru_
Hosting for forbes.ru_Hosting for forbes.ru_
Hosting for forbes.ru_
 
Magento performance
Magento performanceMagento performance
Magento performance
 
VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?VMUG Moscow 2014 Проблемы с дисками?
VMUG Moscow 2014 Проблемы с дисками?
 
Видеохостинг своими руками
Видеохостинг своими рукамиВидеохостинг своими руками
Видеохостинг своими руками
 
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (..."Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
"Отказоустойчивый standby PostgreSQL (HAProxy + PgBouncer)" Виктор Ягофаров (...
 
WWW
WWWWWW
WWW
 
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
Как и зачем создавать NginX-модуль — теория, практика, профит. Часть 2 / Васи...
 
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
Чеклист по клиентской оптимизации - Лавлинский Николай, РИТ++ 2017
 
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
Чеклист по клиентской оптимизации / Николай Лавлинский (Метод Лаб)
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
Nginx Igor Sysoev
Nginx   Igor SysoevNginx   Igor Sysoev
Nginx Igor Sysoev
 
Выступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance ConferenceВыступление Юрия Насретдинова, Badoo, на High Performance Conference
Выступление Юрия Насретдинова, Badoo, на High Performance Conference
 
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
Tempesta FW: challenges, internals, use cases / Александр Крижановский (Tempe...
 
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
Микросервисы: опыт использования в нагруженном проекте / Вадим Мадисон (М-Тех)
 
Isilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSDIsilapp — Extreme Cloud Storage on FreeBSD
Isilapp — Extreme Cloud Storage on FreeBSD
 
Хранилище 101
Хранилище 101Хранилище 101
Хранилище 101
 
ekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилищеekbpy'2012 - Данила Штань - Распределенное хранилище
ekbpy'2012 - Данила Штань - Распределенное хранилище
 

More from Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

More from Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Максим Дунин, Nginx, Inc.

  • 1. Что нового в nginx? Максим  Дунин  
  • 2. Про ложь, наглую ложь и статистику •  nginx  0.x.x:  более  20%   (данные  w3techs.com,   openstat.ru)   •  Debian  Squeeze  (oldstable):   nginx  0.7.67   0.x.x   21   1.0.x   18   7.5   1.1.x   1.2.x   1.3.x   28   1.5   22   1.4.x   1.5.x   1.8  
  • 3. Немного о версионировании •  0.x.x:  давно  и  неправда   •  1.0.x,  1.2.x,  1.4.x,  …   стабильные  версии,  стабильное  API,  критические  и  security-­‐ исправления   •  1.1.x,  1.3.x,  1.5.x,  …   основные  версии  (mainline),  новая  функциональность  тут,   producfon  ready   Актуально:  1.5.6,  1.4.3   Всё  остальное  -­‐  использовать  не  рекомендуется.    
  • 4. Новое в nginx 1.1.x Улучшения  cache  loader,  keepalive  с  бекендами,  поддержка  криптографии  на   эллиптических  кривых  (привет,  NSA!),  оптимизация  потребления  памяти   SSL-­‐соединениями,  применение  нескольких  limit_conn  и  limit_req  одновременно,   MP4  streaming  в  коробке,  proxy_cache_lock,  регулярные  выражения  в  proxy_redirect,   disable_symlinks  для  shared-­‐хостинга,  а  также  поддержка  PCRE  JIT  для  тех,  кто  любит   регулярные  выражения.    
  • 5. Новое в nginx 1.1.x •  Улучшения  cache  loader   •  Keepalive  с  бекендами   •  Поддержка  криптографии  на  эллиптических  кривых  (ECDHE)   •  Оптимизация  потребления  памяти  SSL-­‐соединениями   •  Применение  нескольких  limit_conn  и  limit_req  одновременно   •  MP4  streaming  в  коробке   •  proxy_cache_lock •  Регулярные  выражения  в  proxy_redirect •  disable_symlinks  для  shared-­‐хостинга   •  Поддержка  PCRE  JIT  
  • 6. Улучшения cache loader •  Теперь  nginx  обходится  данными  от  readdir(),   не  пытаясь  читать  файлы  кеша   •  Алгоритм  хорошо  работает  с  SSD   •  Гибкая  конфигурация  загрузки:   loader_files,  loader_sleep,  loader_threshold •  Кеш  6  млн.  файлов  /  400  Гб  загружается  за  50  минут  без  потери   производительности  сервера  (ранее  –  2  cуток)  
  • 7. Keepalive с бекендами •  Поддержка  постоянных  соединений  с  бекендами   •  Работает  с:   •  proxy_pass   •  fastcgi_pass   •  memcached_pass    
  • 8. Keepalive с бекендами Пример:   upstream memd { server 127.0.0.1:11211; keepalive 42; } location / { memcached_pass memd; }
  • 9. Elliptic curve Diffie–Hellman (ECDH) Forward  secrecy   по  разумной  цене     •  Нюанс:  нужно  собрать  с   правильным  OpenSSL   •  Lavabit  court  order   •  Bruce  Schneier   recommendafons     800   RSA   DHE   ECDHE   350   200   1024  bit,  r/s   2048  bit,  r/s   32   300   190  
  • 10. Память и SSL-соединения Было:   •  64k  на  соединение   •  или  даже  600k  на  соединение  (сжатие!)   Стало:   •  16k  на  соединение   (В  nginx  1.3.2+  -­‐  сжатие  запрещено  во  всех  версиях  OpenSSL,  включая   0.9.x,  где  отсутствует  соответствующая  опция.)  
  • 11. Несколько limit_conn одновременно Ограничить  количество  соединений  с  одного  IP-­‐адреса  и   количество  соединений  к  одному  серверу:   limit_conn_zone $binary_remote_addr zone=conn_addr:10m; limit_conn_zone $server_name zone=conn_name:10m; server { ... limit_conn addr 5; limit_conn name 10; ... }
  • 12. Несколько limit_req одновременно Ограничить  количество  запросов  в  секунду  с  одного  IP-­‐адреса  и   количество  запросов  в  секунду  к  одному  серверу:     limit_req_zone $binary_remote_addr zone=req_addr:10m rate=1r/s; limit_req_zone $server_name zone=req_name:10m rate=5r/s; server { ... limit_req zone=addr burst=5 nodelay; limit_req zone=name burst=10 nodelay; ... }
  • 13. MP4 http pseudo streaming в коробке Пример:     location /mp4/ { mp4; }
  • 14. proxy_cache_lock Пример:     location / { proxy_pass http://backend; proxy_cache one; proxy_cache_lock on; proxy_cache_use_stale updating; }   Если  более  одного  запроса  хотят  загрузить  в  кеш  новый  документ  –   только  один  уйдёт  на  бекенд,  остальные  запросы  будут  ждать.  
  • 15. Регулярные выражения в proxy_redirect •  Директиву  proxy_redirect  теперь  можно  использовать  с   регулярными  выражениями:     proxy_redirect ~/user/([^/]+)/(.+)$ http://$1.example.com/$2; •  Директивы  proxy_cookie_path,  proxy_cookie_domain  для   изменения  кук  при  проксировании:     proxy_cookie_domain localhost example.org; proxy_cookie_path /two/ /;
  • 16. Директива disable_symlinks Пример:     disable_symlinks on;   Или,  более  гуманно,  но  дороже:     disable_symlinks if_not_owner;   Нюанс:  работает  это  только  на  современных  операционных  системах,   поддерживающих  openat().    Без  этого  сделать  соответствующую   проверку  без  race  condifon'а  нельзя.    
  • 17. PCRE JIT Пример:     pcre_jit on;   Использовать  с  осторожностью  -­‐  замедляет  на  некоторых  нагрузках.   Пример:     rewrite /((ab?)*)*bb /foo;   Включение  PCRE  JIT  ускоряет  обработку  запросов  к  “/aaaaaaaaaaaaaaaaaaab”  в   10  раз.  
  • 18. Новое в nginx 1.3.x Улучшения  в  поддержке  IPv6,  балансировщик  least_conn,  поддержка  ETag  (а   значит,  докачка  в  IE9+),  gunzip  и  возможность  хранить  ресурсы  сжатыми,  OCSP   Stapling,  SPDY,  поддержка  передачи  тела  запроса  chunk'ами,  проксирование   WebSocket'ов  и  возможность  писать  логи  уже  сжатыми.  
  • 19. Новое в nginx 1.3.x •  Улучшения  в  поддержке  IPv6   •  Балансировщик  least_conn   •  Поддержка  ETag  (а  значит,  докачка  в  IE9+)   •  Фильтр  gunzip  и  возможность  хранить  ресурсы  сжатыми   •  OCSP  Stapling   •  SPDY   •  Поддержка  передачи  тела  запроса  chunk'ами   •  Возможность  писать  логи  уже  сжатыми   •  Проксирование  WebSocket'ов  
  • 20. Улучшения в поддержке IPv6 IPv6  поддерживается  практически  везде:     •  Geo,  geoip,  бекенды,  access-­‐проверки   и  т.п.   Одно  из  немногих  исключений  -­‐  встроенный  resolver.    Мы   работаем  над  этим.  
  • 21. Балансировщик least_conn Пример:     upstream u { least_conn; server 192.0.2.1; server 192.0.2.2; } •  Выбирается  бекенд,  к  которому  установлено  меньше  всего  соединений   •  Удобно  для  балансировки  бекендов,  где  соединения  ==  загрузка.   Т.е.  почти  всегда.  
  • 22. Поддержка ETag •  Докачка  в  IE9+   •  Обработка  запросов  из  кеша   •  ETag  статических  файлов  не  включает  номер  i-­‐node,  нет   проблемы  с  раздачей  файлов  с  нескольких  серверов   (как  ранее  в  Apache)  
  • 23. Gunzip: храним ресурсы сжатыми   •  Разжимаем  сжатые  ответы  на  лету  –   если  клиент  не  понимает  gzip   •  Понимают  gzip  -­‐  более  95%  
  • 24. Gunzip: храним ресурсы сжатыми Экономим  немного  трафика  к  бекендам:   location /proxy/ { gunzip on; proxy_pass ... proxy_set_header Accept-Encoding gzip; }
  • 25. Gunzip: храним ресурсы сжатыми Экономим  память  в  memcached:   location /memd/ { gunzip on; memcached_gzip_flag 2; memcached_pass ... }
  • 26. Gunzip: храним ресурсы сжатыми Экономим  диск  и  память  под  файловый  кеш:   location /store/ { gunzip on; gzip_static always; }
  • 27. OCSP Stapling •  OCSP  –  Online  Cerfficate  Status  Protocol   •  Прикрепление  свежего  OCSP-­‐ответа  к  сертификату,   отправляемому  при  SSL  handshake   •  Экономим  ресурсы  клиентов      
  • 28. OCSP Stapling Пример:     server { listen 443 ssl; ssl_certificate foo.crt; ssl_certificate_key foo.key; ssl_stapling on; resolver 192.0.2.1; }  
  • 29. SPDY Пример:     server { listen 443 ssl spdy; ... }   Экспериментальный  модуль  для  работы  по  экспериментальному   протоколу.  Можно  использовать  без  SSL,  но  не  с  браузерами.    
  • 30. Chunked request body •  Ранее  не  было  –  потому  что  почти  не  надо,  хотя  HTTP/1.1  требует   •  Используется  WebDAV-­‐клиентами,  Java-­‐приложениями   •  Позволяет  делать  так:     $ ./script.pl | curl --upload-file - http://example.com/ без  временных  файлов.  
  • 31. Возможность писать логи уже сжатыми Пример:     access_log /path/to/access.log.gz combined gzip;   Дополнительные  параметры:     buffer=64k flush=1s   Занимает  мало  памяти  и  очень  немного  процессора.     Добавляет  счастья.  
  • 32. Проксирование WebSocket'ов Пример:     location /chat/ { proxy_pass … proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }   Нюанс:  WebSocket'ы  используют  механизм  Upgrade  в  HTTP/1.1,  и  он  не  рассчитан  на   работу  через  прокси.    В  случае  forward  proxy  спецификация  WebSocket'ов  предлагает   использовать  CONNECT,  а  для  reverse  proxy  -­‐  приходится  явно  писать  конфигурацию.  
  • 33. Новое в nginx 1.5.x (still counting) Поддержка  EPOLLRDHUP  на  Linux,  использование  O_PATH  для  disable_symlinks  на   Linux,  несколько  директив  error_log  одновременно,  SMTP  pipelining,  очередные   оптимизации  SSL,  proxy_ssl_protocols  и  proxy_ssl_ciphers,  модуль  auth  request,   небуферизированная  работа  с  FastCGI-­‐бекендами  (fastcgi_buffering)  для  тех,  кому   нужен  streaming  ответов.    
  • 34. Новое в nginx 1.5.x (still counting) •  Поддержка  EPOLLRDHUP  на  Linux   •  Использование  O_PATH  для  disable_symlinks  на  Linux   •  Несколько  директив  error_log  одновременно   •  SMTP  pipelining   •  Очередные  оптимизации  SSL   •  Директивы  proxy_ssl_protocols  и  proxy_ssl_ciphers   •  Модуль  auth  request   •  Небуферизированная  работа  с  FastCGI-­‐бекендами  (fastcgi_buffering)     для  тех,  кому  нужен  streaming  ответов  
  • 35. Поддержка EPOLLRDHUP на Linux Выясняем,  закрыл  ли  клиент  соединение:     •  Универсальный  метод  -­‐  recv(MSG_PEEK)   •  Нет  информации,  если  присутствуют  непрочитанные  данные   •  Платформо-­‐специфичные  методы:   •  kqueue  –  EV_EOF   •  epoll  –  EPOLLRDHUP   •  Помогает  при  long  polling  
  • 36. O_PATH для disable_symlinks на Linux •  Linux  не  умеет  O_SEARCH   •  При  использовании  disable_symlinks   на  промежуточных  каталогах  нужны  права  r-­‐x   •  Но  в  2.6.39+  есть  O_PATH,  очень  похожий   •  Достаточно  прав  -­‐-­‐x  
  • 37. SMTP pipelining •  И  разные  другие  мелкие  улучшения  почтового  прокси-­‐сервера   •  Имеет  смысл  обратить  внимание,  если  вы  используете  nginx  в   качестве  почтового  прокси-­‐сервера  
  • 38. Очередные оптимизации SSL •  Убран  лишний  round-­‐trip  при  использовании  длинных  цепочек   сертификатов   •  Просто  перестало  хватать  4k  буфера,  используемого  OpenSSL  для   буферизации  записи  во  время  handshake’а  
  • 39. Директивы proxy_ssl_protocols, proxy_ssl_ciphers Позволяют:     •  Улучшить  совместимость  с  различными  HTTPS-­‐бекендами   •  Ускорить  работу   •  Потребовать  forward  secrecy  
  • 40. Модуль auth request •  Аутентификация  и  авторизация  через  подзапрос,  в  том  числе  –   внешними  средствами   •  Если  подзапрос  вернул  200  –  доступ  разрешён,  иначе  –  нет   •  Что-­‐то  вроде  fastcgi  authorizers   •  Удобнее,  чем  X-Accel-Redirect •  Лучше,  чем  блокирующиеся  сторонние  модули  auth_pam  и   auth_ldap  
  • 41. Модуль auth request  Например,  так:     location / { auth_request /auth; } location = /auth { proxy_pass ... }
  • 42. Небуферизированная работа с FastCGI-бекендами Пример:     fastcgi_buffering off;   Или  даже  так,  в  заголовках  ответа  FastCGI-­‐приложения:     Status: 200 OK X-Accel-Buffering: no ...   Для  тех,  кому  нужен  streaming  ответов  или  прогрессивная  загрузка   страниц.    
  • 43. Где взять свежий nginx? •  Исходные  коды,  как  обычно:   h¦p://nginx.org/ru/download.html   •  Для  FreeBSD:   используйте  порты  nginx  и  nginx-­‐devel,  там  всё  новое   Спасибо  Сергею  Осокину!   •  Для  Linux  разных  версий:   системные  пакеты  -­‐  обычно  старые,  свежие  пакеты  доступны  на   h¦p://nginx.org/ru/linux_packages.html  
  • 45. NGINX Plus Коммерческая  версия.   Дополнительная  функциональность:     •  Advanced  load  balancing:   •  Dynamic  upstream  reconfigurafon,  acfve  health  checks,  sfcky  balancing   •  Advanced  video  streaming:   •  HTTP  Live  streaming   •  HTTP  Dynamic  streaming   •  Advanced  logging:   •  Remote  logging  via  syslog  protocol,  session  logging   •  Status  module