Вышел nginx 1.0

12/04/2011 вышла стабильная версия nginx.
Так же уже доступен svn репозитарий по адресу svn://svn.nginx.org

Deb-пакет для lenny / squeeze / wheezy от debian.org.ua будет готов чуть позже уже в репозитарии на http://ftp.debian.org.ua/debian-dou/

Начиная с этой версии дополнительно включена поддержка IPv6 и GeoIP (deb-пакет собран с опциями --with-ipv6 и --with-http_geoip_module)

Опубликовано в рубрике nginx
Tagged с

nginx 0.8.x — стабильная версия

Наконец-то свершилось 🙂

Статус версии 0.8.x изменён на стабильный.
Во время разработки этой версии, среди прочего, появились

    * поддержка именнованых выделений в регулярных выражениях,
    * поддержка файлового AIO во FreeBSD и Linux,
    * SSL CRL,
    * модули SCGI и uwsgi.

Источник: http://nginx.org/pipermail/nginx-ru-announce/2010/000027.html

Одновременно с изменением статуса ветки, вышла новая версия - 0.8.51

Изменения в nginx 0.8.51 27.09.2010 *) Изменение: директива secure_link_expires упразднена. *) Изменение: уровень логгирования ошибок resolver'а понижен с уровня alert на error. *) Добавление: теперь параметр "ssl" listen-сокета можно устанавливать несколько раз.

Directadmin+nginx полный автомат

Доброго всем LOCALTIME ! 🙂

Решил поделиться с общественностью своими скриптами для связки directadmin и nginx.

В свое время для снижения нагрузки на apache было решено поставить nginx. После некоторого гугления была сделана первая попытка связать панель и nginx. На тот момент скрипт умел совсем немного - только создавать и удалять конфигурационные файлы виртуальных хостов. Он не умел работать ни с поддоменами, ни с алиасами, не умел и переименовывать конфиги доменов.

Затем последовала вторая попытка. Этот скрипт уже был немного "умнее". Он умел создавать, удалять не только домены, но и поддомены. Однако, после того, как количество вирт. хостов выросло и управляться с большим количеством доменов стало как-то трудно, было решено полностью переписать всю схему работы связки directadmin и nginx. Все домены/поддомены/алиасы будут описываться в map-файле, а в конфиге будут использоваться соответствующие переменные, тем самым будет использоваться всего один небольшой общий конфиг, в котором и описывается виртуальный хост.
"Особые" домены описываются в отдельных конфигурационных файлах.
Кроме того, логи для всех вирт. хостов будет писать nginx, освободим нашего монстра apache от этой обязанности и оставим ему писать только error_log. Что положительно скажется на производительности.

Сказано - сделано.
По моей просьбе и некоторому подобию ТЗ, мой друг Александр Русских написал совсем новый и удобный скрипт, который и будет использоваться в этой статье.
Еще одна моя просьба была направлена Кириллу Коринскому, который написал небольшой патч для nginx. Данный патч выдает 503 ошибку, если уровень load average системы выше заданного в конфиге значения. Да, это грубо, но зато может уберечь сервер от ухода в глубокий своп. Поэтому уровень LA необходимо указывать заведомо высокий.

Итак, поехали.

Часть первая (Если nginx уже установлен - смотрим вторую часть)
У нас в распоряжении сервер с установленной панелькой DirectAdmin (отличная, кстати, панель). Чтобы не делать из системы свалку, nginx будет ставиться из репозитария.

Добавляем репозитарий в список, импортируем ключи и ставим nginx:

# echo "deb http://ftp2.debian.org.ua/debian-dou/ lenny main" >> /etc/apt/sources.list
# gpg --keyserver keys.gnupg.net --recv-keys 0A3D4789
gpg: requesting key 0A3D4789 from hkp server keys.gnupg.net
gpg: key 0A3D4789: public key "Debian.org.ua Custom Repository " imported
gpg: Total number processed: 1
gpg:               imported: 1
# gpg --armor --export 0A3D4789 | apt-key add -
OK
# aptitude update
# aptitude install nginx

Стоит заметить, что в этот пакет включено два неофициальных патча, которые описаны в блоге автора

После установки nginx не запустится - это нормально, так как на 80-м порту все еще работает apache.
Дальше будем приводить в порядок конфигурационные файлы apache и nginx.
Читать дальше Directadmin+nginx полный автомат

Deb-пакеты nginx для Debian Lenny

Вышла очередная версия nginx.
По просьбам теперь собираются пакеты как для i386, так и для amd64.
Просьба качающим протестировать сборку для amd64, так как у меня просто нечем проверить.

Обратите внимание, что изменено поведение некоторых директив.

Изменения в nginx 0.8.48                                          03.08.2010
    *) Изменение: теперь по умолчанию директива server_name имеет значение
       пустое имя "".
       Спасибо Геннадию Махомеду.
    *) Изменение: теперь по умолчанию директива server_name_in_redirect
       имеет значение off.
    *) Добавление: переменные $geoip_dma_code, $geoip_area_code и
       $geoip_region_name.
       Спасибо Christine McGonagle.
    *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и
       scgi_pass не наследовались в блоки limit_except.
    *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses
       uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка
       появилась в 0.8.46.
    *) Исправление: директива fastcgi_split_path_info неверно использовала
       выделения, если в выделения попадала только часть URI.
       Спасибо Юрию Тарадаю и Frank Enderle.
    *) Исправление: директива rewrite не экранировала символ ";" при
       копировании из URI в аргументы.
       Спасибо Daisuke Murase.
    *) Исправление: модуль ngx_http_image_filter_module закрывал
       соединение, если изображение было больше размера image_filter_buffer.

Скачать deb-пакет разных версий для платформ i386 и amd64 можно тут

Deb-пакет nginx 0.8.45 для Debian Lenny

Изменения в nginx 0.8.45                                          13.07.2010
    *) Добавление: улучшения в модуле ngx_http_xslt_filter.
       Спасибо Laurence Rowe.
    *) Исправление: ответ SSI модуля мог передаваться не полностью после
       команды include с параметром wait="yes"; ошибка появилась в 0.7.25.
       Спасибо Максиму Дунину.
    *) Исправление: директива listen не поддерживала параметр setfib=0.

Изменения в предыдущей версии:

Изменения в nginx 0.8.44                                          05.07.2010
    *) Изменение: теперь nginx по умолчанию не кэширует ответы бэкендов, в
       заголовке которых есть строка "Set-Cookie".
    *) Добавление: директива listen поддерживает параметр setfib.
       Спасибо Андрею Филонову.
    *) Исправление: директива sub_filter могла изменять регистр букв при
       частичном совпадении.
    *) Исправление: совместимость с HP/UX.
    *) Исправление: совместимость с компилятором AIX xcl_r.
    *) Исправление: nginx считал большие пакеты SSLv2 как обычные текстовые
       запросы.
       Спасибо Miroslaw Jaworski.

Скачать deb-пакет разных версий для Lenny можно тут

Deb-пакет nginx 0.8.35 для Debian Lenny

Очередная версия nginx.

Изменения в nginx 0.8.35                                          01.04.2010
    *) Изменение: теперь charset-фильтр работает до SSI-фильтра.
    *) Добавление: директива chunked_transfer_encoding.
    *) Исправление: символ "&" при копировании в аргументы в правилах
       rewrite не экранировался.
    *) Исправление: nginx мог завершаться аварийно во время обработки
       сигнала или при использовании директивы timer_resolution на
       платформах, не поддерживающих методы kqueue или eventport.
       Спасибо George Xie и Максиму Дунину.
    *) Исправление: если временные файлы и постоянное место хранения
       располагались на разных файловых системах, то у постоянных файлов
       время изменения было неверным.
       Спасибо Максиму Дунину.
    *) Исправление: модуль ngx_http_memcached_module мог выдавать ошибку
       "memcached sent invalid trailer".
       Спасибо Максиму Дунину.
    *) Исправление: nginx не мог собрать библиотеку zlib-1.2.4 из исходных
       текстов.
       Спасибо Максиму Дунину.
    *) Исправление: в рабочем процессе происходил segmentation fault, если
       перед ответом FastCGI-сервера было много вывода в stderr; ошибка
       появилась в 0.8.34.
       Спасибо Максиму Дунину.

Deb-пакет для Debian Lenny можно скачать тут.

nginx 0.8.33

Изменения в nginx 0.8.33                                          01.02.2010
    *) Безопасность: теперь nginx/Windows игнорирует пробелы в конце
       URI.
       Спасибо Dan Crowley, Core Security Technologies.
    *) Безопасность: теперь nginx/Windows игнорирует короткие имена
       файлов.
       Спасибо Dan Crowley, Core Security Technologies.
    *) Изменение: теперь keepalive соединения после запросов POST не
       запрещаются для MSIE 7.0+. Спасибо Adam Lounds.
    *) Изменение: теперь keepalive соединения запрещены для Safari. Спасибо
       Joshua Sierles.
    *) Исправление: если проксированный или FastCGI запрос внутренне
       перенаправлялся в другой проксированный или FastCGI location, то
       переменная $upstream_response_time могла иметь ненормально большое
       значение; ошибка появилась в 0.8.7.
    *) Исправление: в рабочем процессе мог произойти segmentation fault при
       отбрасывания тела запроса; ошибка появилась в 0.8.11.
Пакет для Lenny (i386) можно взять тут
С патчами тут
Для adm64 сделаю позже )

nginx 0.8.20 для Debian Lenny

Собрал для Debian Lenny deb-пакет.

Что нового в 0.8.20 версии:

*) Изменение: теперь по умолчанию используются следующие шифры SSL:
"HIGH:!ADH:!MD5".

*) Исправление: модуль ngx_http_autoindex_module не показывал последний
слэш для линков на каталоги; ошибка появилась в 0.7.15.

*) Исправление: nginx не закрывал лог, заданный параметром конфигурации
--error-log-path; ошибка появилась в 0.7.53.

*) Исправление: nginx не считал запятую разделителем в строке
"Cache-Control" в строке заголовка бэкенда.

*) Исправление: nginx/Windows мог не создать временный файл, файл в
кэше или файл с помощью директив proxy/fastcgi_store, если рабочий
процесс не имел достаточно прав для работы с каталогами верхнего
уровня.

*) Исправление: строки "Set-Cookie" и "P3P" в заголовке ответа
FastCGI-сервера не скрывались при кэшировании, если не
использовались директивы fastcgi_hide_header с любыми параметрами.

*) Исправление: nginx неверно считал размер кэша на диске.

Взять можно тут

Также собрал пакет, в который включены патчи, позволяющие использовать:
переменные $crc32_name и $md5_name
переменные $loadavg_1m, $loadav_5m, $loadavg_15m
А также использовать оперраторы < !< > !> в if-условиях

За патчи отдельное спасибо Кириллу Коринскому

Пакет можно взять тут

nginx 0.8.15

Собрал свежую версию nginx для Дебиан-а.  Пакет собран с опциями:

--with-mail
--with-mail_ssl_module
--with-http_stub_status_module
--with-http_flv_module
--with-http_ssl_module
--with-http_dav_module
--with-http_sub_module
--with-http_realip_module
--with-http_gzip_static_module
--with-debug

Также в сборку включены два  патча Кирилла Коринского,  который выдает 503 ошибку в случае превышения заданного в конфиге значения load average

Взять можно тут