0
nginx - зачем он вообще нужен, текущие и будущие возможности Игорь Сысое http://sysoev.ru
nginx: engine x, нгинкс, тпштч <ul><li>начало разработки – весна 2002 года </li></ul><ul><li>первый релиз – 4 октября 2004...
HTTP прокси-сервер
архитектура соединения
масштабируемость <ul><li>Apache (prefork): </li></ul><ul><ul><li>один процесс – одно соединение </li></ul></ul><ul><ul><li...
волшебные пузырьки <ul><li>kqueue </li></ul><ul><ul><li>FreeBSD, NetBSD, OpenBSD, MacOSX </li></ul></ul><ul><li>epoll, rts...
мечта администратора <ul><li>гибкость конфигурации </li></ul><ul><li>изменение настроек и обновление исполняемого файла бе...
возможности <ul><li>модульность </li></ul><ul><li>rewrite / if / переменные </li></ul><ul><li>geo-targeting: учёт адреса к...
возможности <ul><li>SSL: </li></ul><ul><ul><li>кэш SSL-сессий </li></ul></ul><ul><ul><li>проверка клиентских сертификатов ...
фильтры вывода
Server Side Includes (SSI) фильтр <ul><li><!--# include virtual=&quot;/perl/one.html&quot; --> </li></ul><ul><li><!--# inc...
распределение нагрузки и отказоустойчивость <ul><li>upstream  backend  { </li></ul><ul><ul><li>server backend1; </li></ul>...
X-Accel-Redirect <ul><li>X-Accel-Redirect: /protected/file </li></ul><ul><li>server { </li></ul><ul><ul><li>location / { <...
что вряд ли будет поддерживаться <ul><li>CGI  </li></ul><ul><li>.htaccess </li></ul><ul><li>piped logs </li></ul>
почтовый прокси-сервер
методы аутентификации <ul><li>POP3 </li></ul><ul><ul><li>USER/PASS, APOP, AUTH LOGIN PLAIN </li></ul></ul><ul><ul><li>CRAM...
светлое будущее <ul><li>кэширование всего, что только можно </li></ul><ul><li>ограничение числа соединений с бэкендами </l...
Upcoming SlideShare
Loading in...5
×

Nginx Igor Sysoev

1,746

Published on

Published in: Technology, Design
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,746
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
58
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Transcript of "Nginx Igor Sysoev"

  1. 1. nginx - зачем он вообще нужен, текущие и будущие возможности Игорь Сысое http://sysoev.ru
  2. 2. nginx: engine x, нгинкс, тпштч <ul><li>начало разработки – весна 2002 года </li></ul><ul><li>первый релиз – 4 октября 2004 года </li></ul><ul><li>март 2006 года – 9.8% российских виртуальных серверов проксировались или обслуживались nginx'ом </li></ul><ul><li>март 2007 года – 22.7% </li></ul><ul><li>Рамблер, Mamba, Peterhost </li></ul>
  3. 3. HTTP прокси-сервер
  4. 4. архитектура соединения
  5. 5. масштабируемость <ul><li>Apache (prefork): </li></ul><ul><ul><li>один процесс – одно соединение </li></ul></ul><ul><ul><li>минимум 200-300K на одно соединение </li></ul></ul><ul><ul><li>mod_perl/php 1-100M </li></ul></ul><ul><li>nginx: </li></ul><ul><ul><li>один процесс – тысячи соединений </li></ul></ul><ul><ul><li>неактивное keep-alive соединение ~250 байт </li></ul></ul><ul><ul><li>обычное соединение 32K-100K </li></ul></ul>
  6. 6. волшебные пузырьки <ul><li>kqueue </li></ul><ul><ul><li>FreeBSD, NetBSD, OpenBSD, MacOSX </li></ul></ul><ul><li>epoll, rtsig </li></ul><ul><ul><li>Linux </li></ul></ul><ul><li>/dev/poll, eventport </li></ul><ul><ul><li>Solaris </li></ul></ul><ul><li>select, poll </li></ul><ul><li>sendfile </li></ul><ul><ul><li>FreeBSD, Linux, Solaris </li></ul></ul>
  7. 7. мечта администратора <ul><li>гибкость конфигурации </li></ul><ul><li>изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов </li></ul><ul><li>быстрая ротация логов </li></ul><ul><li>отладочный лог </li></ul>
  8. 8. возможности <ul><li>модульность </li></ul><ul><li>rewrite / if / переменные </li></ul><ul><li>geo-targeting: учёт адреса клиента </li></ul><ul><li>ограничение доступа в зависимости от адреса клиента и по паролю </li></ul><ul><li>ограничение числа соединений с одного адреса </li></ul><ul><li>перенаправление ошибок 404 и т.п. </li></ul>
  9. 9. возможности <ul><li>SSL: </li></ul><ul><ul><li>кэш SSL-сессий </li></ul></ul><ul><ul><li>проверка клиентских сертификатов </li></ul></ul><ul><ul><li>проксирование: proxy_pass https ://... </li></ul></ul><ul><li>подмножество WebDAV: </li></ul><ul><ul><li>PUT, DELETE, MKCOL, COPY, MOVE </li></ul></ul><ul><li>встроенный perl </li></ul>
  10. 10. фильтры вывода
  11. 11. Server Side Includes (SSI) фильтр <ul><li><!--# include virtual=&quot;/perl/one.html&quot; --> </li></ul><ul><li><!--# include virtual=&quot;/php/two.php&quot; --> </li></ul>/one.html /two.php
  12. 12. распределение нагрузки и отказоустойчивость <ul><li>upstream backend { </li></ul><ul><ul><li>server backend1; </li></ul></ul><ul><ul><li>server backend2; </li></ul></ul><ul><li>} </li></ul><ul><li>server { </li></ul><ul><ul><li>location / { </li></ul></ul><ul><ul><ul><li>proxy_pass http://backend ; </li></ul></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul>
  13. 13. X-Accel-Redirect <ul><li>X-Accel-Redirect: /protected/file </li></ul><ul><li>server { </li></ul><ul><ul><li>location / { </li></ul></ul><ul><ul><ul><li>proxy_pass http://backend; </li></ul></ul></ul><ul><ul><li>} </li></ul></ul><ul><ul><li>location /protected/ { </li></ul></ul><ul><ul><ul><li>internal ; </li></ul></ul></ul><ul><ul><ul><li>root /path/to/files; </li></ul></ul></ul><ul><ul><li>} </li></ul></ul><ul><li>} </li></ul>XAR
  14. 14. что вряд ли будет поддерживаться <ul><li>CGI </li></ul><ul><li>.htaccess </li></ul><ul><li>piped logs </li></ul>
  15. 15. почтовый прокси-сервер
  16. 16. методы аутентификации <ul><li>POP3 </li></ul><ul><ul><li>USER/PASS, APOP, AUTH LOGIN PLAIN </li></ul></ul><ul><ul><li>CRAM-MD5 </li></ul></ul><ul><li>IMAP </li></ul><ul><ul><li>LOGIN </li></ul></ul><ul><li>SMTP </li></ul><ul><ul><li>AUTH LOGIN PLAIN CRAM-MD5 </li></ul></ul><ul><li>SSL, IMAP STARTTLS, POP3 STLS </li></ul>
  17. 17. светлое будущее <ul><li>кэширование всего, что только можно </li></ul><ul><li>ограничение числа соединений с бэкендами </li></ul><ul><li>состояние сервера </li></ul><ul><li>развитие встроенного perl'а </li></ul><ul><li>неблокируемая работа с MySQL </li></ul><ul><li>фильтры тела запроса </li></ul><ul><li>замена rewrite-модуля на script-модуль </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×