WordPress.com перевел свои балансировщики нагрузки на nginx - очень серьезный шаг для nginx, так как когда такие мощные пользователи начинают использовать продукт, к ним присматриваются другие проекты, что в свое время повлияло на росте популярности lighttpd. WordPress.com один из лидеров блог-хостинга, ожидается заметный рост доли nginx в следующем отчете netcraft.
В процессе принятия решения рассматривались варианты использования балансировщиков HAProxy, Perlbal и LVS, но конечный выбор остановился на nginx, в силу трех причин:
- Простая и гибкая система конфигурации, возможность перечитывания конфигурации на лету;
- Возможность использования в качестве полноценного web-сервера, а не только балансировщика нагрузки;
- Только nginx в тестах на реальном трафике смог справиться с нагрузкой 8000 запросов в секунду.
Кроме того, Игорь Сысоев выпустил два новых релиза Nginx и объявил о переводе ветки 0.5.x в состояние "legacy", а 0.6.x - stable.
Исправления в nginx 0.5.36:
- Директива sub_filter могла вставлять заменяемый текст в вывод (выявлено на ua.opennet.ru).
- При повторном использовании в SSI пустого block'а в качестве заглушки в рабочем процессе происходил segmentation fault.
- Директивы proxy_store и fastcgi_store не проверяли длину ответа.
- nginx выдавал ошибочное сообщение "SSL_shutdown() failed (SSL: )"; ошибка появилась в 0.5.35.
- При использовании HTTPS запросы могли завершаться с ошибкой "bad write retry"; ошибка появилась в 0.5.35.
- Директива fastcgi_catch_stderr не возвращала ошибку; теперь она возвращает ошибку 502, которую можно направить на следующий сервер с помощью "fastcgi_next_upstream invalid_header".
- При использовании директивы fastcgi_catch_stderr в основном процессе происходил segmentation fault; ошибка появилась в 0.5.32.
Спасибо Manlio Perillo.
Изменения в nginx 0.6.30:
- Теперь, если маске, заданной в директиве include, не соответствует ни один файл, то nginx не выдаёт ошибку.
- Теперь время в директивах можно задавать без пробела, например, "1h50m".
- Исправление утечек памяти, если директива ssl_verify_client имела значение on. Спасибо Chavelle Vincent.
- Исправление: директива sub_filter могла вставлять заменяемый текст в вывод.
- Исправление: директива error_page не воспринимала параметры в перенаправляемом URI.
- Исправление: теперь при сборке с Cygwin nginx всегда открывает файлы в бинарном режиме.
- Исправление: nginx не собирался под OpenBSD; ошибка появилась в 0.6.15.
|