nginx

nginx

nginx (engine x, произносится как энджин-экс, engine — движок, X — ещё один) — это свободный веб-сервер. Он был написан программистом Игорем Сысоевым для компании Rambler, но поддерживается и развивается до сих пор. Является конкурентом веб-сервера Apache.

Для эффективного управления памятью nginx использует пулы.

Пул — это последовательность предварительно выделенных блоков динамической памяти. Длина блока варьируется от 1 до 16 килобайт. Изначально под пул выделяется только один блок. Блок разделяется на занятую область и незанятую.

Преимущества и недостатки nginx

К преимуществам nginx можно отнести следующее:

  • шифрование, сжатие, поддержка многосайтовости на IP-адресе;
  • межсистемность, малый размер, простота конфигурации, масштабируемость;
  • преимущества асинхронной системы ввода-вывода. Это экономия ресурсов системы при больших нагрузках.

К недостаткам nginx можно отнести:

  • встроенная поддержка PHP. Лечится подключением PHP через fastcgi. Неплохо работает решение php-fpm;
  • нет встроенной поддержки технологии Web-сокет
  • появился позже Apache, и не всеми признается.

Асинхронный ввод-вывод позволяет nginx экономить на запросах передачи информации. 10 000 клиентов, скачивающих файл на очень медленной скорости не страшны для nginx, но способны повергнуть в ужас Apache. Соответственно, nginx идеально подходит для отдачи статического контента. Конечно, для Apache есть решения, позволяющие справляться с большим числом одновременных запросов, но их ещё надо прикручивать, а в nginx это есть изначально.

nginx используется на значительном количестве веб-серверов по всему миру. Нередко можно встретить конфигурацию nginx+Apache, когда nginx используется в качестве сервера-балансировщика, обратно проксирующего запросы на один или несколько Apache-серверов. nginx при этом имеет дело с дикой стихией запросов из внешнего мира, а Apache уже обрабатывает сами запросы.