Перейти к содержанию

Nginx

Nginx ("движок-x") описывается как обратный прокси-сервер на основе событий. Это относится к тому факту, что он имеет асинхронную архитектуру, в отличие от своих конкурентов Apache и IIS, которые создают новый блокирующий поток для каждого соединения. Nginx намного новее, чем Apache, который был запущен в 1995 году, хотя с 2008 года он получил широкое распространение, в основном за счет Apache.

Nginx следует соглашению о том, что четные номера версий являются стабильными, а нечетные – основными или разрабатываемыми.

В зависимости от способа установки и распространения конфигурации могут существовать в различных каталогах. Конфигурация может быть явно указана во время выполнения с помощью --conf-path/-c.

Эта опция также отображается в выводе "ps" для главного процесса Nginx, что является одним из способов узнать, какая конфигурация используется для текущего экземпляра Nginx.

Конфигурационные файлы Nginx содержат директивы:

  • Простые директивы , такие как listen *:80;, содержат имя, несколько необязательных параметров и закрывающую точку с запятой. Сами параметры могут передавать значение после знака равенства, т.е. backlog=511.
  • Контекстные директивы (или просто "контексты", также "директивы блоков"), такие как events, http, and server, заключают группу других директив в пару фигурных скобок и могут быть вложенными. Большинство простых директив могут быть объявлены только в определенных контекстах.
  • Существует также подразумеваемый основной контекст , который обертывает все содержимое файла, и включение простой директивы в основной контекст означает превращение его в statemtn верхнего уровня.
  • Комментарии могут быть написаны с помощью #

Примеры

Очень простая конфигурация, которая создает HTTP-сервер, прослушивающий порт 80 каждого сетевого интерфейса, без указания HTTP-хоста, с указанного корневого пути:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
events {

}

http {
  server {



  }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
user nobody nogroup;
worker_processes 1;

events {
  worker_connections 512;
}

http {
  server {
    listen *:80;
    server_name "";
    root /usr/share/nginx/html;
  }
}
http {
  server {
    listen 8080;
    root /www;

    location /images {
      root /;
    }
  }
}
events { }
nginx -s stop
nginx -s start
nginx restart