Релиз http-сервера nginx 1.4.0
24 апреля 2013 года
После года разработки и 16 экспериментальных выпусков в тестовой ветке 1.3.x представлена новая стабильная версия высокопроизводительного HTTP-сервера nginx 1.4.0. В дальнейшем все изменения в новой стабильной ветке будут связаны с устранением ошибок и внесением незначительных улучшений, не нарушающих API. Все существенные изменения будут развиваться в рамках новой экспериментальной ветки 1.5.x.
В соответствии с апрельским отчетом компании Netcraft nginx используется на 12.91% всех активных сайтов, что соответствует второму месту по популярности в данной категории (доля Apache соответствует 51.01%, а Microsoft IIS - 12.13%). Доля nginx среди всех сайтов составляет 14.81%, среди миллиона самых посещаемых сайтов в мире - 12.96%, среди 10 тысяч наиболее крупных ресурсов - 30%, среди сайтов, работающих на платформе Amazon AWS, - 44%. В настоящее время под управлением nginx работает около 96.1 млн сайтов, что на 26.3 млн больше чем год назад. По данным W3Techs 16.1% из миллиона самых посещаемых сайтов в мире используют nginx, в апреле прошлого года этот показатель составлял 11%. В России nginx используется на 66.3% самых посещаемых сайтов (год назад - 58.2%).
Из улучшений, добавленных в процессе формирования экспериментальной ветки 1.3.x, можно отметить:
- Интеграция модуля ngx_http_spdy_module с реализацией протокола SPDY, который продвигается для включения в состав будущего стандарта HTTP/2.0. SPDY был создан специально для минимизации задержек при соединении и обмене данными между клиентом и сервером. По данным Google ускорение загрузки страниц при использовании SPDY составляет от 15% до 50%. SPDY добавляет сеансовый уровень поверх SSL, что даёт возможность обеспечить передачу нескольких одновременных потоков в рамках одного TCP-соединения. При использовании HTTP запросы в рамках одного потока обслуживаются последовательно, задействование SPDY даёт возможность мультиплексировать запросы ресурсов, обрабатывать их параллельно и отправлять запросы с учетом динамически рассчитываемых приоритетов, увеличивая текущую пропускную способность. Использование SSL одновременно позволяет решить проблему с прохождением запросов через прокси серверы и позволяет организовать доставку данных по инициативе сервера, без специального запроса клиента (технология Server push). Дополнительное ускорение достигается за счёт сжатия HTTP-заголовков запроса и ответа, что уменьшает размер передаваемых данных и заметно ускоряет загрузку страниц, порождающих большое число мелких запросов (CSS, JavaScript файлы, картинки), особенно при использовании медленных каналов связи.
- Поддержка работы в роли прокси для соединений WebSocket. Поддержка WebSocket-соединений в модулях ngx_http_uwsgi_module и ngx_http_scgi_module. Протокол WebSocket разработан для решения проблемы с организацией двустороннего надёжного обмена данными между web-приложением и сервером. По своей сути WebSockets является своеобразным аналогом TCP для Web и позволяет в произвольном порядке инициировать отправку данных от сервера к web-приложению, а не только от web-приложения к серверу. Сам протокол не использует «сырые» TCP-соединения или множественные HTTP-запросы, вместо этого постоянное соединение поддерживается в рамках единого с HTTP канала передачи данных, по которому не передаётся лишних HTTP-заголовков. Установив WebSocket-соединение между сервером и клиентом, разработчик может отправить данные из web-браузера при помощи метода send() и получить отправленные со стороны сервера данные через установку специального обработчика событий;
- Новый модуль ngx_http_gunzip_module с реализацией фильтра, позволяющего распаковывать на стороне nginx ответы серверов, сжатые методом gzip, если клиент не поддерживает gzip-сжатие. Таким образом появляется возможность хранить все прокэшированные ответы в сжатом виде, что достаточно сильно экономит дисковое пространство;
- В модуле ngx_http_ssl_module появилась поддержка механизма OCSP stapling, позволяющего выполнять проверку статуса TLS/SSL-сертификатов на OCSP-серверах и оперативно реагировать на факты отзыва сертификатов;
- Новые директивы: limit_req_status, limit_conn_status, image_filter_interlace, real_ip_recursive, geoip_proxy и geoip_proxy_recursive;
- Добавлена поддержка переменных в директивах proxy_bind, fastcgi_bind, memcached_bind, scgi_bind и uwsgi_bind;
- В почтовом прокси-сервере добавлена поддержка IPv6-бэкендов;
- Переменные $status, $pipe, $request_length, $time_iso8601, $request_time,$bytes_sent, $connection, $connection_requests, $msec и
$time_local теперь можно использовать не только в директиве log_format;
- В модуль ngx_http_geoip_module добавлена поддержка IPv6. Директива geo теперь поддерживает IPv6 адреса в формате CIDR;
- При использовании директивы include с маской на
Unix-системах включаемые файлы теперь сортируются в алфавитном порядке;
- Директивы proxy_pass, fastcgi_pass, scgi_pass, uwsgi_pass
и директива server в блоке upstream теперь поддерживают IPv6-адреса. В директиве resolver теперь можно указывать порт и задавать IPv6-адреса DNS-серверов;
- В директиву worker_processes добавлен параметр auto, позволяющий автоматически выбирать число одновременных процессов-обработчиков, в зависимости от числа процессоров в системе;
- Поддержка компилятора Clang;
- Добавлена поддержка директивы least_conn в блоке upstream, которая задаёт для группы метод балансировки нагрузки, при котором запрос передаётся серверу с наименьшим числом активных соединений, с учётом весов серверов. При использовании директивы ip_hash теперь можно задавать веса серверов.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.
- 24 апреля 2013
- Новости 2013 года
- 2013
- 24 апреля
- Апрель 2013
- Материалы OpenNET
- Загружено ботом в архив
- Загружено ботом в архив/OpenNET
- Архивные новости
- HTTP
- Nginx
- Веб-серверы
- Компьютерные технологии
- Наука и технологии
- Программное обеспечение
- Сетевые протоколы
- Свободное программное обеспечение
- Технологии
- Опубликовано
- Россия в апреле 2013 года