Изменения в nginx 0.1.11 02.12.2004
*) Добавление: директива worker_priority.
*) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
влияют на передачу ответа.
*) Исправление: nginx не вызывал initgroups().
Спасибо Андрею Ситникову и Андрею Нигматулину.
*) Изменение: ngx_http_auto_index_module теперь выдаёт размер файлов в
байтах.
*) Исправление: ngx_http_auto_index_module возвращал ошибку 500, если в
каталоге есть битый symlink.
*) Исправление: файлы больше 4G не передавались с использованием sendfile.
*) Исправление: если бэкенд резолвился в несколько адресов и при ожидании
от него ответа происходила ошибка, то процесс зацикливался.
*) Исправление: при использовании метода /dev/poll рабочий процесс мог
завершиться с сообщением "unknown cycle".
*) Исправление: ошибки "close() channel failed".
*) Исправление: автоматическое определение групп nobody и nogroup.
*) Исправление: директива send_lowat не работала на Linux.
*) Исправление: если в конфигурации не было раздела events, то происходил
segmentation fault.
*) Исправление: nginx не собирался под OpenBSD.
*) Исправление: двойные слэшы в "://" в URI превращались в ":/".
Комментарий.
*) Исправление: файлы больше 4G не передавались с использованием sendfile.
Для всех платформ переделан код для работы с sendfile. В продкашн
тестировался только для FreeBSD. Для остальных платформ должен работать,
но хорошо бы в этом убедиться перед установкой на реальный сервер.
*) Добавление: директива worker_priority.
"worker_priority -20;" выставляет самый высокий приоритет. Использовать
осторожно и только, если вы понимаете, что делаете. Если nginx у вас
зацикливается, то рабочий процесс с таким приоритетом съест весь процессор.
*) Изменение: под FreeBSD директивы tcp_nopush и tcp_nodelay вместе
влияют на передачу ответа.
tcp_nopush включает опцию TCP_NOPUSH на FreeBSD и опцию TCP_CORK на Linux
в начале использования sendfile() и выключает эти опции сразу же после
передачи файла. Эти опции позволяеют передавать заголовок HTTP ответа
и тело запроса в полных эзеренетовских пакетах по 1460 (или около того).
tcp_nodelay включает опцию TCP_NODELAY после обработки первого запроса
в keep-alive соедиении. В Linux опции TCP_CORK и TCP_NODELAY
взаимоисключающие друг друга, поэтому TCP_NODELAY выключается перед включением
TCP_CORK. Во FreeBSD TCP_NODELAY и TCP_NOPUSH могут быть установленны вместе,
однако на время включения TCP_NOPUSH эффект от TCP_NODELAY пропадает.
Игорь Сысоев
http://sysoev.ru