После года разработки представлена новая стабильная ветка высокопроизводительного HTTP-сервера nginx 1.6.0, которая вобрала в себя изменения, накопленные в рамках основной ветки 1.5.x. В дальнейшем все изменения в стабильной ветке 1.6 будут связаны с устранением ошибок и внесением незначительных улучшений, не нарушающих API. Одновременно сформирована основная ветка nginx 1.7, в рамках которой будет продолжено развитие новых возможностей.
В соответствии с апрельским отчетом компании Netcraft nginx используется на 14.22% всех активных сайтов (год назад 12.91%), что соответствует второму месту по популярности в данной категории (доля Apache соответствует 52.44%, а Microsoft IIS - 11.08%). Доля nginx среди всех сайтов составляет 15.25% (год назад 14.81%), среди миллиона самых посещаемых сайтов в мире - 17.82% (год назад 12.96%). В настоящее время под управлением nginx работает около 146.2 млн сайтов (год назад 96.1 млн). По данным W3Techs 20.4% из миллиона самых посещаемых сайтов в мире используют nginx, в апреле прошлого года этот показатель составлял 16.1%. В России nginx используется на 68.6% самых посещаемых сайтов (год назад - 66.3%).
Из улучшений, добавленных в процессе формирования основной ветки 1.5.x, можно отметить:
- Новый модуль ngx_http_auth_request_module, для организации авторизации клиента на основании результата запроса по определённому URI (например, при успешной авторизации в другой директории);
- В модуле ngx_http_spdy_module добавлена поддержка протокола SPDY 3.1. Для ограничения скорости передачи ответов клиенту в SPDY-соединениях теперь допускается использовать директиву limit_rate;
- В модуль ngx_http_proxy_module добавлена возможность подтверждения корректности содержимого просроченных элементов кэша при помощи условных запросов с полем заголовка If-Modified-Since;
- Новые переменные:
- $ssl_session_reused - возвращает "r", если сессия была использована повторно;
- $proxy_protocol_addr - адрес клиента, полученный из заголовка протокола PROXY;
- Новые директивы:
- ngx_http_ssi_module: ssi_last_modified, sub_filter_last_modified и xslt_last_modified для сохранения в поле заголовка Last-Modified исходного ответа во время обработки SSI;
- ngx_http_fastcgi_module: fastcgi_buffering для управления буферизацией ответов FastCGI-сервера;
- proxy_cache_revalidate, fastcgi_cache_revalidate, scgi_cache_revalidate и uwsgi_cache_revalidate для ревалидации просроченных элементов кэша при помощи условных запросов с полем заголовка If-Modified-Since;
- ngx_http_ssl_module: ssl_buffer_size (размер буфера, используемого при отправке данных), ssl_session_ticket_key, ssl_session_tickets (возобновление сессий при помощи TLS session tickets);
- ngx_http_proxy_module: proxy_ssl_protocols и proxy_ssl_ciphers (разрешает указанные протоколы и шифры для запросов к проксируемому HTTPS-серверу);
- ngx_http_spdy_module: spdy_chunk_size (максимальный размер частей, на которые будет разделяться тело ответа);
- Возможность использования нескольких директив error_log;
- В директивы allow и deny добавлена поддержка unix domain сокетов;
- В директиву listen добавлена поддержка параметра fastopen;
- В директивы proxy_next_upstream, fastcgi_next_upstream, scgi_next_upstream и uwsgi_next_upstream добавлена поддержка параметра http_403;
- Директива disable_symlinks теперь использует O_PATH в Linux;
- При использовании длинных цепочек сертификатов задействована оптимизация SSL handshake;
- В почтовый прокси-сервер добавлена поддержка SMTP pipelining;
- В resolver добавлена поддержка IPv6;
- В секцию contrib добавлены скрипты для подсветки синтаксиса в vim
- В модуль ngx_http_uwsgi_module добавлена поддержка SSL;
- В модуле ngx_http_mp4_module обеспечен пропуск дорожек, имеющих меньшую длину, чем запрошенная перемотка. Обеспечена поддержка byte ranges и аргумента end;
- В директивы listen и real_ip_header добавлен параметр proxy_protocol;
- Поддержка byte ranges при сохранении ответов в кэш.
Новшества, представленные в выпуске nginx 1.7.0:
- Поддержка верификации SSL-сертификатов бэкендов;
- Поддержка SNI (Server Name Indication, позволяет обеспечить доступ через шифрованное соединение к виртуальным хостам на одном IP) при работе с бэкендами по SSL;
- Новая переменная $ssl_server_name.
- Возможность использования параметра "if" в директиве access_log.