Как то давно в интернете читал про такой веб сервер как nginx, как выяснилось это очень легенький HTTP-сервер и почтовый прокси-сервер, разработанный замечательным человеком Игорем Сысоевым. В декабре 2009 года nginx использовался на 4% самых посещаемых сайтов в мире, оказывается на данный момент nginx работает на нескольких достаточно нагруженных сайтах под FreeBSD и Linux, в том числе на большинстве серверов Рамблера, что вселяет некоторый оптимизм.
На данный момент занимаюсь сборкой информации и более конкретным изучением всех достоинств этого чудо сервера и планирую перевести свои веб сервера на сие чудо.
Основная функциональность HTTP-сервера:
* обслуживание статических запросов, индексных файлов, автоматическое создание списка файлов, кэш дескрипторов открытых файлов;
* акселерированное проксирование с кэшированием, простое распределение нагрузки и отказоустойчивость;
* акселерированная поддержка удалённых FastCGI серверов с кэшированием, простое распределение нагрузки и отказоустойчивость;
* модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, XSLT-фильтр, SSI-фильтр, преобразование изображений; несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно.
* поддержка SSL и расширения TLS SNI;
Функциональность почтового прокси-сервера:
* IMAP и POP3: перенаправление пользователя на IMAP или POP3-бэкенд с использованием внешнего HTTP-сервера аутентификации;
* SMTP: проверка пользователя с помощью внешнего HTTP-сервера аутентификации и перенаправление соединения на внутренний SMTP-сервер;
* методы аутентификации:
o POP3: USER/PASS, APOP, AUTH LOGIN/PLAIN/CRAM-MD5;
o IMAP: LOGIN, AUTH LOGIN/PLAIN/CRAM-MD5;
o SMTP: AUTH LOGI/ PLAIN/CRAM-MD5;
* поддержка SSL;
* поддержка STARTTLS и STLS;
Операционные системы и платформы:
* тестировалась сборка и работа на:
FreeBSD 3 — 7 платформа i386; FreeBSD 3 — 7 платформа amd64;
Linux 2.2 — 2.6 платформа i386; Linux 2.6 платформа amd64;
Solaris 9 платформы i386 и sun4u; Solaris 10 платформы i386, amd64 и sun4v;
MacOS X платформы ppc, i386;
Windows XP, Windows Server 2003.
Архитектура и масштабируемость:
* один главный процесс и несколько рабочих, рабочие процессы работают под непривилегированным пользователем;
* поддержка kqueue (FreeBSD 4.1+), epoll (Linux 2.6+), rt signals (Linux 2.2.19+), /dev/poll (Solaris 7 11/99+), event ports (Solaris 10), select и poll;
* использование возможностей, предоставляемых kqueue, таких как EV_CLEAR, EV_DISABLE (для временного выключения события), NOTE_LOWAT, EV_EOF, число доступных данных, коды ошибок;
* поддержка sendfile (FreeBSD 3.1+, Linux 2.2+, Mac OS X 10.5+), sendfile64 (Linux 2.4.21+) и sendfilev (Solaris 8 7/01+);
* поддержка файлового AIO (FreeBSD 4.3+, Linux 2.6.22+);
* поддержка DIRECTIO (FreeBSD 4.4+, Linux 2.4+, Solaris 2.6+, Mac OS X);
* поддержка accept-фильтров (FreeBSD 4.1+) и TCP_DEFER_ACCEPT (Linux 2.4+);
* на 10 000 неактивных HTTP keep-alive соединений расходуется около 2.5M памяти;
* минимум операций копирования данных;
Другие возможности HTTP-сервера:
* виртуальные сервера, определяемые по ip-адресу и имени;
* поддержка keep-alive и pipelined соединений;
* гибкость конфигурации на уровне Apache, настройка таймаутов и размеров буферов;
* изменение настроек и обновление исполняемого файла без перерыва в обслуживании клиентов;
* настройка форматов логов, быстрая ротация логов;
* специальные страницы для ошибок 4xx-5xx;
* изменение URI с помощью регулярных выражений;
* выполнение разных функций в зависимости от адреса клиента;
* ограничение доступа в зависимости от адреса клиента и по паролю (Basic аутентификация);
* методы PUT, DELETE, MKCOL, COPY и MOVE;
* FLV streaming;
* ограничение скорости отдачи ответов;
* ограничение числа одновременных соединений и запросов;
* встроенный perl;
Более подробно с этим проектом можно ознакомиться на сайте Игоря Сысоева – http://sysoev.ru/
FreeBSD и nginx.
Теги
12.04 (12) apache (11) bash (7) cacti (8) CentOS (69) Debian (44) delphi (6) DNS (6) error (12) flash (7) FreeBSD (102) install (21) ip (16) iptables (6) linux (28) mysql (22) nginx (16) nodeny (14) php (18) phpMyAdmin (6) RAID (9) regedit (6) root (9) server (32) SNMP (8) sql (11) ssh (9) supermicro (7) Ubuntu (59) usb (7) VMware (9) wget (6) Windows (24) WordPress (16) zabbix (14) команда не найдена (6) мониторинг (7) настройка (18) пароль (7) скачать (6) скрипт (6) удалить (6) установка (55) флешка (10) фтп (12)