NGiNX

NGiNX

Сервер NGiNX

NGiNX (engine x — англ. Engine X; по-русски произносится как энгинкс или энжин-икс) — веб-сервер и почтовый прокси-сервер, работающий на Unix-подобных операционных системах (тестировалась сборка и работа на FreeBSD, OpenBSD, Linux, Solaris, Mac OS X, AIX и HP-UX). Начиная с версии 0.7.52 появилась экспериментальная бинарная сборка под Microsoft Windows. NGiNX позиционируется производителем как простой, быстрый и надёжный сервер, не перегруженный функциями.

  • Применение nginx целесообразно прежде всего для статических веб-сайтов и как обратного прокси-сервера перед динамическими сайтами:
    • HTTP-сервер
      • обслуживание неизменяемых запросов, индексных файлов, автоматическое создание списка файлов, кеш дескрипторов открытых файлов;
      • акселерированное проксирование без кэширования, простое распределение нагрузки и отказоустойчивость;
      • поддержка кеширования при акселерированном проксировании и FastCGI;
      • акселерированная поддержка FastCGI и memcached серверов, простое распределение нагрузки и отказоустойчивость;
      • модульность, фильтры, в том числе сжатие (gzip), byte-ranges (докачка), chunked ответы, HTTP-аутентификация, SSI-фильтр;
      • несколько подзапросов на одной странице, обрабатываемые в SSI-фильтре через прокси или FastCGI, выполняются параллельно;
      • поддержка SSL;
      • поддержка PSGI, WSGI;
      • экспериментальная поддержка встроенного Perl.
    • SMTP/IMAP/POP3-прокси сервер
      • перенаправление пользователя на SMTP/IMAP/POP3-бэкенд с использованием внешнего HTTP-сервера аутентификации;
      • простая аутентификация (LOGIN, USER/PASS);
      • поддержка SSL и STARTTLS.

В nginx рабочие процессы обслуживают одновременно множество соединений, мультиплексируя их вызовами операционной системы select, epoll (Linux) и kqueue (FreeBSD). Рабочие процессы выполняют цикл обработки событий от дескрипторов. Полученные от клиента данные разбираются с помощью конечного автомата. Разобранный запрос последовательно обрабатывается цепочкой модулей, задаваемой конфигурацией. Ответ клиенту формируется в буферах, которые хранят данные либо в памяти, либо указывают на отрезок файла. Буфера объединяются в цепочки, определяющие последовательность, в которой данные будут переданы клиенту. Если операционная система поддерживает эффективные операции ввода-вывода, такие как writev и sendfile, то nginx применяет их по возможности.

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Минимальный конфиг виртуального хоста NGiNX для настройки работы домена в связке Apache + NGiNX

Для работы нескольких сайтов на одном сервере Linux требуется создать так называемые виртуальные хосты. Данная настройка заключается в том, чтобы по доменному имени сервер мог определить, в какой папке ему следует искать запрашиваемые скрипты и/или документы. В этой статье рассмотрим минимальный конфигурационный файл веб-сервера NGiNX, работающей в качестве прокси-сервера для другого веб-сервера — Apache. Основной шаблон NGiNX рассмотрен в → этой статье.

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Шаблон конфига NGiNX для правильной работы phpMyAdmin с переадресацией запроса Apache в Debian 9 (phpmyadmin.conf)

После установки MySQL и phpMyAdmin на сервер с ОС Debian 9, phpMyAdmin открывается с помощью Apache при запросе на порт 8080, указанным в адресной строке браузера. Это не удобно и не оправдано. В этой статье рассмотрим, как дополнительно настроить NGiNX, создав ещё один шаблон конфига так, чтобы переадресация в сторону Apache проходила автоматически и незаметно для пользователя. Для упрощения работы все эти настройки вынесем в отдельный файл шаблона phpmyadmin.conf.

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Шаблон конфига NGiNX для связи с Apache, установленных сервере с Debian 9

После того, как в конфиге NGiNX (файл nginx.conf) прописано проксирование Apache на порту 8080 и созданы папки для хранения шаблонов и виртуальных хостов NGiNX, нужно завершить конфигурацию связки NGiNX и Apache. Для этого создадим файл шаблона с основными опциями подключения к вышестоящему серверу и работой со статическим содержимым. Файл этот положим в привязанную в конфиге папку /etc/nginx/templates и назовём его apache24.conf для ясности. Но обо всём по порядку...

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

Структура папок NGiNX на сервере Debian 9 для работы с виртуальными хостами

Для того, чтобы было удобнее настраивать NGiNX в Debian 9 для работы с виртуальными хостами, нужно немного дополнить стандартную файловую структуру хранения информации с настройками этого веб-сервера. В этой статье рассмотрим, какие именно дополнения желательно внести в файловую систему конфига NGiNX в папке /etc/nginx для того, чтобы в будущем было удобно управлять созданием, поддержанием и удалением виртуальных хостов на WEB-сервере.

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

В этой статье рассмотрим, как установить NGiNX на сервер

Для разгрузки Apache, который может быть единственно установленном на сервере WEB-сервером, можно установить NGiNX, который будет отдавать статические данные, предоставив Apache обрабатывать динамические запросы пользователей сайтов. Последнее время всё больше и больше проектов, работающих на связке Apache+NGiNX, и если не появится достойная замена Apache, я думаю, эта связка двух WEB-серверов взаимно дополняющих друг друга ещё долгое время просуществует в качестве базовой для работы с WEB. В этой статье рассмотрим, как установить NGiNX на сервер и как выглядит эта установка под Linux.

Звезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активнаЗвезда не активна

nginx.conf — подготовка конфига NGiNX в качестве прокси-сервера Apache

После того, как NGiNX и Apache разведены на разные порты: NGiNX по умолчанию встаёт на 80-й порт, а вот для Apache порт нужно поменять на 8080. Итак, после этого нужно прописать в конфиге /etc/nginx/nginx.conf соответствующие настройки для того, чтобы NGiNX обрабатывал свои запросы на 80-м порту, а то, что предназначено для Apache, отправлял ему на обработку. Также нужно сразу настроить работу с виртуальными хостами, если планируется, что на сервере будет размещаться более одного сайта. Ну и другие настройки типа сжатия, кэширования на стороне браузера и т.п.. В той статье я приведу готовый листинг получающегося конфига nginx.conf. Какие опции за что отвечают, возможно опишу позже.

Подкатегории