1 added
1 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>13 фев 2024</li>
2
<ul><li>13 фев 2024</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>Знакомимся с устройством самого популярного в России сервера, сравниваем его с Apache и разбираемся в конфигурациях.</p>
4
</ul><p>Знакомимся с устройством самого популярного в России сервера, сравниваем его с Apache и разбираемся в конфигурациях.</p>
5
<p>Иллюстрация: Cookie Studio / Freepik / Nginx / Colowgee для Skillbox Media</p>
5
<p>Иллюстрация: Cookie Studio / Freepik / Nginx / Colowgee для Skillbox Media</p>
6
<p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
6
<p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
7
<p>Сайты в интернете работают на веб-серверах, которые обрабатывают запросы пользователей и отвечают на них. Сегодня один из самых популярных веб-серверов - Nginx, в этом году он отмечает 20-летний юбилей. В этой статье, совместно с Дмитрием Зайцевым, инженером и CTO Flocktory, расскажем о нём.</p>
7
<p>Сайты в интернете работают на веб-серверах, которые обрабатывают запросы пользователей и отвечают на них. Сегодня один из самых популярных веб-серверов - Nginx, в этом году он отмечает 20-летний юбилей. В этой статье, совместно с Дмитрием Зайцевым, инженером и CTO Flocktory, расскажем о нём.</p>
8
<p><strong>Содержание</strong></p>
8
<p><strong>Содержание</strong></p>
9
<ul><li><a>Что такое Nginx</a></li>
9
<ul><li><a>Что такое Nginx</a></li>
10
<li><a>Как он работает</a></li>
10
<li><a>Как он работает</a></li>
11
<li><a>Что выбрать: Nginx или Apache</a></li>
11
<li><a>Что выбрать: Nginx или Apache</a></li>
12
<li><a>Как подготовить и установить веб-сервер</a></li>
12
<li><a>Как подготовить и установить веб-сервер</a></li>
13
<li><a>Как правильно его настроить</a></li>
13
<li><a>Как правильно его настроить</a></li>
14
<li><a>Какая у Nginx иерархия каталогов</a></li>
14
<li><a>Какая у Nginx иерархия каталогов</a></li>
15
<li><a>Как работать с его конфигурацией</a></li>
15
<li><a>Как работать с его конфигурацией</a></li>
16
</ul><p><strong>Эксперт</strong></p>
16
</ul><p><strong>Эксперт</strong></p>
17
<p><strong></strong>CTO Flocktory, программный директор профессии "<a>DevOps-инженер</a>" в Skillbox, директор программного комитета<a>DevOpsConf</a>.</p>
17
<p><strong></strong>CTO Flocktory, программный директор профессии "<a>DevOps-инженер</a>" в Skillbox, директор программного комитета<a>DevOpsConf</a>.</p>
18
<p><strong>Nginx</strong>(Engine X, или "Энджин-икс") - это программное обеспечение с открытым исходным кодом для создания веб-серверов. Оно принимает запрос клиента, например браузера, обрабатывает его и возвращает ответ.</p>
18
<p><strong>Nginx</strong>(Engine X, или "Энджин-икс") - это программное обеспечение с открытым исходным кодом для создания веб-серверов. Оно принимает запрос клиента, например браузера, обрабатывает его и возвращает ответ.</p>
19
<p>Сейчас на Nginx<a>размещено 34% всех сайтов в интернете</a>, что делает его самым популярным веб-сервером в мире.</p>
19
<p>Сейчас на Nginx<a>размещено 34% всех сайтов в интернете</a>, что делает его самым популярным веб-сервером в мире.</p>
20
Веб-серверКоличество размещённых сайтов на 1 января 2024 года, в процентахNginx34,1Apache30,4Cloudflare21,6LiteSpeed13,0Microsoft IIS5,1<p>Nginx был разработан<a>Игорем Сысоевым</a>в 2002 году в качестве альтернативы серверу Apache, который тогда занимал более 60% рынка. В 2004 году продукт был опубликован для свободного использования, а в 2011-м Игорь с партнёрами организовали свою фирму.</p>
20
Веб-серверКоличество размещённых сайтов на 1 января 2024 года, в процентахNginx34,1Apache30,4Cloudflare21,6LiteSpeed13,0Microsoft IIS5,1<p>Nginx был разработан<a>Игорем Сысоевым</a>в 2002 году в качестве альтернативы серверу Apache, который тогда занимал более 60% рынка. В 2004 году продукт был опубликован для свободного использования, а в 2011-м Игорь с партнёрами организовали свою фирму.</p>
21
<p>Один из её продуктов - Nginx Plus, платная версия ПО. Она отличается от опенсорсной возможностью мониторить активность сервера, продвинутыми правилами балансировки нагрузки, наличием поддержки и другими техническими нюансами.</p>
21
<p>Один из её продуктов - Nginx Plus, платная версия ПО. Она отличается от опенсорсной возможностью мониторить активность сервера, продвинутыми правилами балансировки нагрузки, наличием поддержки и другими техническими нюансами.</p>
22
<p>Nginx работает как обычный сервер - он получает запросы от клиента, например браузера, и отправляет ему запрашиваемые файлы. Это может быть HTML- и CSS-код, текст, изображения, видео и JS-скрипты, необходимые для отрисовки страницы.</p>
22
<p>Nginx работает как обычный сервер - он получает запросы от клиента, например браузера, и отправляет ему запрашиваемые файлы. Это может быть HTML- и CSS-код, текст, изображения, видео и JS-скрипты, необходимые для отрисовки страницы.</p>
23
Общий принцип взаимодействия клиента и сервера<em>Иллюстрация:<a>Polina Vari для Skillbox Media</a></em><p>Но есть особенности. Nginx работает асинхронно с событийно-ориентированной моделью обработки запросов. Благодаря этому он может поддерживать множество соединений без блокирования ввода и вывода. Разберёмся, что это значит.</p>
23
Общий принцип взаимодействия клиента и сервера<em>Иллюстрация:<a>Polina Vari для Skillbox Media</a></em><p>Но есть особенности. Nginx работает асинхронно с событийно-ориентированной моделью обработки запросов. Благодаря этому он может поддерживать множество соединений без блокирования ввода и вывода. Разберёмся, что это значит.</p>
24
<p>Например, когда клиент отправляет запрос на передачу ему большого видеофайла, Nginx запускает операцию передачи, а затем освобождает поток обработки запросов, чтобы он мог получить и обработать другие запросы. Когда операция передачи завершается, Nginx обрабатывает результаты и продолжает выполнение других задач.</p>
24
<p>Например, когда клиент отправляет запрос на передачу ему большого видеофайла, Nginx запускает операцию передачи, а затем освобождает поток обработки запросов, чтобы он мог получить и обработать другие запросы. Когда операция передачи завершается, Nginx обрабатывает результаты и продолжает выполнение других задач.</p>
25
<p>Таким образом, вместо того чтобы блокировать поток обработки запросов в ожидании завершения операции ввода и вывода, Nginx продолжает обрабатывать другие запросы. Это позволяет серверу эффективно обслуживать большое количество одновременных запросов на передачу видеофайлов, минимизируя задержки и использование ресурсов.</p>
25
<p>Таким образом, вместо того чтобы блокировать поток обработки запросов в ожидании завершения операции ввода и вывода, Nginx продолжает обрабатывать другие запросы. Это позволяет серверу эффективно обслуживать большое количество одновременных запросов на передачу видеофайлов, минимизируя задержки и использование ресурсов.</p>
26
Схема работы Nginx<em>Инфографика: Майя Мальгина для Skillbox Media</em><p>Nginx может быть не только классическим веб-сервером. Его используют и для:</p>
26
Схема работы Nginx<em>Инфографика: Майя Мальгина для Skillbox Media</em><p>Nginx может быть не только классическим веб-сервером. Его используют и для:</p>
27
<ul><li><strong>Создания прокси-серверов.</strong>Если количество запросов большое, то сам Nginx может не справляться с их обработкой. В этом случае он выступает в роли прокси: принимает запрос от клиента, передаёт его отдельному серверу для обработки, получает ответ и возвращает клиенту.</li>
27
<ul><li><strong>Создания прокси-серверов.</strong>Если количество запросов большое, то сам Nginx может не справляться с их обработкой. В этом случае он выступает в роли прокси: принимает запрос от клиента, передаёт его отдельному серверу для обработки, получает ответ и возвращает клиенту.</li>
28
<li><a><strong>SSL</strong></a><strong>/</strong><a><strong>TLS</strong></a><strong>-терминации.</strong>Nginx поддерживает оба протокола, обеспечивая шифрование и дешифрование данных. Поэтому его можно использовать в качестве посредника между клиентом и основным веб-сервером, снижая нагрузку на последний.</li>
28
<li><a><strong>SSL</strong></a><strong>/</strong><a><strong>TLS</strong></a><strong>-терминации.</strong>Nginx поддерживает оба протокола, обеспечивая шифрование и дешифрование данных. Поэтому его можно использовать в качестве посредника между клиентом и основным веб-сервером, снижая нагрузку на последний.</li>
29
</ul><p>Перед созданием сайта стоит определиться с вариантом веб-сервера. Чаще всего разработчики выбирают между Nginx и Apache.</p>
29
</ul><p>Перед созданием сайта стоит определиться с вариантом веб-сервера. Чаще всего разработчики выбирают между Nginx и Apache.</p>
30
<p>Nginx - лидер по скорости обработки статического контента, который одинаков для всех пользователей. Например, карточки товаров в онлайн-магазине, лендинги, новостные сайты и так далее.</p>
30
<p>Nginx - лидер по скорости обработки статического контента, который одинаков для всех пользователей. Например, карточки товаров в онлайн-магазине, лендинги, новостные сайты и так далее.</p>
31
<p>Apache больше подходит для динамического контента. Это всё, что генерируется во время запроса клиента и может изменяться от запроса к запросу.</p>
31
<p>Apache больше подходит для динамического контента. Это всё, что генерируется во время запроса клиента и может изменяться от запроса к запросу.</p>
32
<p>Интересно, что сайт может работать на двух разных веб-серверах одновременно. В этом случае Nginx будет принимать все запросы и самостоятельно обрабатывать статический контент, а динамический - переправлять Apache.</p>
32
<p>Интересно, что сайт может работать на двух разных веб-серверах одновременно. В этом случае Nginx будет принимать все запросы и самостоятельно обрабатывать статический контент, а динамический - переправлять Apache.</p>
33
<p>Nginx и Apache различаются принципом работы, возможностью конфигурирования, наличием модулей и другими характеристиками. Рассмотрим некоторые из них.</p>
33
<p>Nginx и Apache различаются принципом работы, возможностью конфигурирования, наличием модулей и другими характеристиками. Рассмотрим некоторые из них.</p>
34
ХарактеристикаApacheNginxПринцип работыНа каждый запрос клиента создаётся отдельный процесс. Но возможна работа и с одним мастер-процессомОдин мастер-процесс, создающий дочерние процессы для обработки запросов клиентаВозможность конфигурированияОбработка запросов настраивается на уровне каталогов при помощи файла .htaccess. В нём можно определить порядок аутентификации, авторизации, права доступа отдельных пользователей и другоеТонкой настройки на уровне каталогов нет. Можно задать конфигурацию для мастер-процесса, контролирующего работу всего веб-сервераРабота с модулямиДополнительные модули могут быть подключены при работающем сервереДополнительные модули должны быть выбраны и скомпилированы с ядром сервера. "Горячее" подключение невозможноПоддержка операционных системРаботает на всех Unix-подобных ОС и WindowsПоддерживает большинство Unix-подобных ОС. На Windows имеются ограничения функциональностиПростота настройкиТребуется настройка на нескольких уровнях операционной системы, в том числе отдельных файлов .htaccessПростая настройка на этапе сборки или одного конфигурационного файла<p>Веб-сервер Nginx можно установить на разные операционные системы: Linux (дистрибутивы Ubuntu, Debian, CentOS и другие), Unix-подобные (например, FreeBSD или облачные) или macOS.</p>
34
ХарактеристикаApacheNginxПринцип работыНа каждый запрос клиента создаётся отдельный процесс. Но возможна работа и с одним мастер-процессомОдин мастер-процесс, создающий дочерние процессы для обработки запросов клиентаВозможность конфигурированияОбработка запросов настраивается на уровне каталогов при помощи файла .htaccess. В нём можно определить порядок аутентификации, авторизации, права доступа отдельных пользователей и другоеТонкой настройки на уровне каталогов нет. Можно задать конфигурацию для мастер-процесса, контролирующего работу всего веб-сервераРабота с модулямиДополнительные модули могут быть подключены при работающем сервереДополнительные модули должны быть выбраны и скомпилированы с ядром сервера. "Горячее" подключение невозможноПоддержка операционных системРаботает на всех Unix-подобных ОС и WindowsПоддерживает большинство Unix-подобных ОС. На Windows имеются ограничения функциональностиПростота настройкиТребуется настройка на нескольких уровнях операционной системы, в том числе отдельных файлов .htaccessПростая настройка на этапе сборки или одного конфигурационного файла<p>Веб-сервер Nginx можно установить на разные операционные системы: Linux (дистрибутивы Ubuntu, Debian, CentOS и другие), Unix-подобные (например, FreeBSD или облачные) или macOS.</p>
35
<p><strong>Важно!</strong></p>
35
<p><strong>Важно!</strong></p>
36
<p>Если вы решите разместить сервер локально, например на компьютере с Windows, то сделать это можно только с ограничениями, установив бета-версию. Подробно почитать об этом можно в <a>официальной документации</a>.</p>
36
<p>Если вы решите разместить сервер локально, например на компьютере с Windows, то сделать это можно только с ограничениями, установив бета-версию. Подробно почитать об этом можно в <a>официальной документации</a>.</p>
37
<p>Мы же в этом разделе рассмотрим установку Nginx на Ubuntu, размещённой на хостинге. Это один из основных сценариев использования веб-сервера.</p>
37
<p>Мы же в этом разделе рассмотрим установку Nginx на Ubuntu, размещённой на хостинге. Это один из основных сценариев использования веб-сервера.</p>
38
<p>Установить дистрибутив Nginx можно несколькими способами: с официального сайта, скачав необходимый<a>пакет для Linux</a>, или из репозитория Ubuntu, где он присутствует по умолчанию. Выберем второй вариант, как самый удобный.</p>
38
<p>Установить дистрибутив Nginx можно несколькими способами: с официального сайта, скачав необходимый<a>пакет для Linux</a>, или из репозитория Ubuntu, где он присутствует по умолчанию. Выберем второй вариант, как самый удобный.</p>
39
<p>Перед установкой Nginx вам потребуется выбрать и оплатить хостинг. После этого войдите в его панель управления под стандартной учётной записью, имеющей привилегию на запуск команды sudo.</p>
39
<p>Перед установкой Nginx вам потребуется выбрать и оплатить хостинг. После этого войдите в его панель управления под стандартной учётной записью, имеющей привилегию на запуск команды sudo.</p>
40
<p>Используя систему управления пакетами apt, обновите установочные дистрибутивы из репозитория:</p>
40
<p>Используя систему управления пакетами apt, обновите установочные дистрибутивы из репозитория:</p>
41
sudo apt update<p>Теперь установите сам Nginx:</p>
41
sudo apt update<p>Теперь установите сам Nginx:</p>
42
sudo apt install nginx<p>После завершения установки добавьте сервер в список на автозагрузку:</p>
42
sudo apt install nginx<p>После завершения установки добавьте сервер в список на автозагрузку:</p>
43
sudo systemctl enable nginx<p>Всё готово к его настройке.</p>
43
sudo systemctl enable nginx<p>Всё готово к его настройке.</p>
44
<p>В Linux-системах популярной и простой утилитой для настройки политик безопасности является<a>UFW</a>(Uncomplicated Firewall). По умолчанию в ней стоит запрет на все входящие соединения. Поэтому откроем нужные нам порты:</p>
44
<p>В Linux-системах популярной и простой утилитой для настройки политик безопасности является<a>UFW</a>(Uncomplicated Firewall). По умолчанию в ней стоит запрет на все входящие соединения. Поэтому откроем нужные нам порты:</p>
45
<ul><li>22 - для удалённого доступа по SSH;</li>
45
<ul><li>22 - для удалённого доступа по SSH;</li>
46
<li>80 - для связи между клиентом и сервером по протоколу<a>HTTP</a>;</li>
46
<li>80 - для связи между клиентом и сервером по протоколу<a>HTTP</a>;</li>
47
<li>443 - для связи между клиентом и сервером по протоколу HTTPS.</li>
47
<li>443 - для связи между клиентом и сервером по протоколу HTTPS.</li>
48
</ul><p>Установите UFW и предоставьте ей доступ к веб-серверу:</p>
48
</ul><p>Установите UFW и предоставьте ей доступ к веб-серверу:</p>
49
sudo nano /etc/ufw/applications.d/nginx.ini<p>Проверьте список доступных для UFW приложений:</p>
49
sudo nano /etc/ufw/applications.d/nginx.ini<p>Проверьте список доступных для UFW приложений:</p>
50
sudo ufw app list<p>Среди них должен быть Nginx:</p>
50
sudo ufw app list<p>Среди них должен быть Nginx:</p>
51
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH<p>Внесите разрешения на открываемые порты:</p>
51
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH<p>Внесите разрешения на открываемые порты:</p>
52
sudo ufw allow 'Nginx HTTP’<p>Чтобы проверить их статус, введите:</p>
52
sudo ufw allow 'Nginx HTTP’<p>Чтобы проверить их статус, введите:</p>
53
sudo ufw status<p>Ответ должен выглядеть так:</p>
53
sudo ufw status<p>Ответ должен выглядеть так:</p>
54
To Action From OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)<p>Проверьте работоспособность сервера:</p>
54
To Action From OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)<p>Проверьте работоспособность сервера:</p>
55
sudo service nginx status<p>Если он запущен и активен, то вернётся ответ Active: active (running) since….</p>
55
sudo service nginx status<p>Если он запущен и активен, то вернётся ответ Active: active (running) since….</p>
56
<p>Чтобы проверить доступность по HTTP, то есть статус портов для входящих запросов, откройте в браузере страницу сервера.</p>
56
<p>Чтобы проверить доступность по HTTP, то есть статус портов для входящих запросов, откройте в браузере страницу сервера.</p>
57
<p>Если всё настроено как надо, вы увидите сообщение:</p>
57
<p>Если всё настроено как надо, вы увидите сообщение:</p>
58
<em>Скриншот:<a>Microsoft</a></em><p>Остаётся проверить наличие сервера в списке на автозагрузку:</p>
58
<em>Скриншот:<a>Microsoft</a></em><p>Остаётся проверить наличие сервера в списке на автозагрузку:</p>
59
sudo systemctl is-enabled nginx<p>В ответ должно вернуться enabled.</p>
59
sudo systemctl is-enabled nginx<p>В ответ должно вернуться enabled.</p>
60
<p>Для управления Nginx используются базовые команды. Основные из них:</p>
60
<p>Для управления Nginx используются базовые команды. Основные из них:</p>
61
<ul><li>sudo systemctl start nginx - запуск веб-сервера;</li>
61
<ul><li>sudo systemctl start nginx - запуск веб-сервера;</li>
62
<li>sudo systemctl restart nginx - перезапуск;</li>
62
<li>sudo systemctl restart nginx - перезапуск;</li>
63
<li>sudo systemctl reload nginx - перезагрузка;</li>
63
<li>sudo systemctl reload nginx - перезагрузка;</li>
64
<li>sudo systemctl stop nginx - отключение;</li>
64
<li>sudo systemctl stop nginx - отключение;</li>
65
<li>sudo systemctl status nginx - проверка состояния сервера;</li>
65
<li>sudo systemctl status nginx - проверка состояния сервера;</li>
66
<li>sudo nginx -t - тестирование конфигурации.</li>
66
<li>sudo nginx -t - тестирование конфигурации.</li>
67
</ul><p>Для анализа работы сервера и ручного внесения изменений в файлы стоит знать расположение и иерархию наиболее важных папок:</p>
67
</ul><p>Для анализа работы сервера и ручного внесения изменений в файлы стоит знать расположение и иерархию наиболее важных папок:</p>
68
<ul><li>/var/www/html - начальная страница;</li>
68
<ul><li>/var/www/html - начальная страница;</li>
69
<li>/etc/nginx - директория с основными файлами настроек;</li>
69
<li>/etc/nginx - директория с основными файлами настроек;</li>
70
<li>etc/nginx/nginx.conf - главный конфигурационный файл Nginx;</li>
70
<li>etc/nginx/nginx.conf - главный конфигурационный файл Nginx;</li>
71
<li>/etc/nginx/sites-available - каталог с конфигурациями для каждого из сайтов, содержащий информацию о них: имя, IP и другое;</li>
71
<li>/etc/nginx/sites-available - каталог с конфигурациями для каждого из сайтов, содержащий информацию о них: имя, IP и другое;</li>
72
<li>/etc/nginx/sites-enabled - в отличие от предыдущей директории, здесь содержатся конфигурации только активных сайтов, которые обслуживаются Nginx;</li>
72
<li>/etc/nginx/sites-enabled - в отличие от предыдущей директории, здесь содержатся конфигурации только активных сайтов, которые обслуживаются Nginx;</li>
73
<li>/etc/nginx/snippets - сниппеты для подключения к основной конфигурации сервера;</li>
73
<li>/etc/nginx/snippets - сниппеты для подключения к основной конфигурации сервера;</li>
74
<li>/var/log/nginx - директория с логами событий.</li>
74
<li>/var/log/nginx - директория с логами событий.</li>
75
</ul><p>Работа самого Nginx и его модулей определяется директивами, указанными в конфигурационном файле. От их корректности зависит функциональность сервера.</p>
75
</ul><p>Работа самого Nginx и его модулей определяется директивами, указанными в конфигурационном файле. От их корректности зависит функциональность сервера.</p>
76
-
<p>Директивы прописываются автомат��чески при установке и настройке Nginx, но при необходимости можно их редактировать или даже импортировать сторонний файл.</p>
76
+
<p>Директивы прописываются автоматически при установке и настройке Nginx, но при необходимости можно их редактировать или даже импортировать сторонний файл.</p>
77
<p>Есть два уровня конфигурации: глобальный и локальный. Первый отвечает за работу всего сервера, а локальный - отдельных сайтов.</p>
77
<p>Есть два уровня конфигурации: глобальный и локальный. Первый отвечает за работу всего сервера, а локальный - отдельных сайтов.</p>
78
<p>Синтаксис параметров конфигурации такой: Имя_директивы [Значение1] [Значение2] [Значение3…];</p>
78
<p>Синтаксис параметров конфигурации такой: Имя_директивы [Значение1] [Значение2] [Значение3…];</p>
79
<p>В качестве разделителя выступает знак табуляции или пробел. Завершается параметр обязательно точкой с запятой.</p>
79
<p>В качестве разделителя выступает знак табуляции или пробел. Завершается параметр обязательно точкой с запятой.</p>
80
<p>Посмотрим на то, как выглядит простая директива:</p>
80
<p>Посмотрим на то, как выглядит простая директива:</p>
81
access_log /var/nginx/access.log main;<p>Пример с двойным значением:</p>
81
access_log /var/nginx/access.log main;<p>Пример с двойным значением:</p>
82
index index.html index.htm;<p>Также параметры могут быть блочными, состоящими из нескольких строк. Отдельные блоки в них разделяются фигурными скобками:</p>
82
index index.html index.htm;<p>Также параметры могут быть блочными, состоящими из нескольких строк. Отдельные блоки в них разделяются фигурными скобками:</p>
83
http { include conf/mime.types; include /etc/nginx/sites-enabled/*; }<p>Кроме того, несколько блочных директив можно объединить в одно целое. Например так:</p>
83
http { include conf/mime.types; include /etc/nginx/sites-enabled/*; }<p>Кроме того, несколько блочных директив можно объединить в одно целое. Например так:</p>
84
server { location / { proxy_pass http://localhost:8080; } location /images/ { root /data; } }<p>Для просмотра конфигурационного файла введите команду:</p>
84
server { location / { proxy_pass http://localhost:8080; } location /images/ { root /data; } }<p>Для просмотра конфигурационного файла введите команду:</p>
85
sudo nano /etc/nginx/nginx.conf<p>Обычно он имеет многострочную структуру. Например:</p>
85
sudo nano /etc/nginx/nginx.conf<p>Обычно он имеет многострочную структуру. Например:</p>
86
<em>Скриншот:</em><a><em>Linux Hint</em></a><p>Разберём построчно, что указано в конфигурации:</p>
86
<em>Скриншот:</em><a><em>Linux Hint</em></a><p>Разберём построчно, что указано в конфигурации:</p>
87
<ul><li>user - имя пользователя.</li>
87
<ul><li>user - имя пользователя.</li>
88
<li>worker_processes - количество рабочих процессов. Значение auto устанавливает его равным количеству процессорных ядер.</li>
88
<li>worker_processes - количество рабочих процессов. Значение auto устанавливает его равным количеству процессорных ядер.</li>
89
<li>error_log - путь к логам ошибок веб-сервера.</li>
89
<li>error_log - путь к логам ошибок веб-сервера.</li>
90
<li>pid - файл с номером главного процесса.</li>
90
<li>pid - файл с номером главного процесса.</li>
91
<li>events - блок, состоящий из параметров, влияющих на работу сетевого соединения. Здесь указано worker_connections 1024 - максимальное число одновременно работающих соединений одного рабочего процесса.</li>
91
<li>events - блок, состоящий из параметров, влияющих на работу сетевого соединения. Здесь указано worker_connections 1024 - максимальное число одновременно работающих соединений одного рабочего процесса.</li>
92
<li>http - контекст, состоящий из директив, отвечающих за работу HTTP.</li>
92
<li>http - контекст, состоящий из директив, отвечающих за работу HTTP.</li>
93
<li>include указывает на подключение иных файлов конфигурации.</li>
93
<li>include указывает на подключение иных файлов конфигурации.</li>
94
<li>default_type задаёт MIME-тип ответов сервера по умолчанию.</li>
94
<li>default_type задаёт MIME-тип ответов сервера по умолчанию.</li>
95
<li>server - в этом блоке задаются конфигурации виртуального сервера.</li>
95
<li>server - в этом блоке задаются конфигурации виртуального сервера.</li>
96
<li>listen обозначает порт, который прослушивается, в нашем примере это порт 80 (HTTP), использующийся для веб-запросов.</li>
96
<li>listen обозначает порт, который прослушивается, в нашем примере это порт 80 (HTTP), использующийся для веб-запросов.</li>
97
<li>access_log - путь к файлу, в котором сохраняется история обращений к веб-серверу.</li>
97
<li>access_log - путь к файлу, в котором сохраняется история обращений к веб-серверу.</li>
98
<li>index - главная страница сайта.</li>
98
<li>index - главная страница сайта.</li>
99
<li>root - корневой путь для запросов к серверу.</li>
99
<li>root - корневой путь для запросов к серверу.</li>
100
<li>index- имя файла, который будет определяться как индексный.</li>
100
<li>index- имя файла, который будет определяться как индексный.</li>
101
</ul><p>Существуют и другие параметры, которые могут быть указаны в конфигурации. Их можно посмотреть<a>здесь</a>.</p>
101
</ul><p>Существуют и другие параметры, которые могут быть указаны в конфигурации. Их можно посмотреть<a>здесь</a>.</p>
102
<p>Резюмируем, что мы сегодня узнали:</p>
102
<p>Резюмируем, что мы сегодня узнали:</p>
103
<ul><li>Nginx - это веб-сервер, принимающий запросы от клиента и обрабатывающий их. Кроме этого, его можно использовать для создания прокси-серверов и SSL/TLS-терминации.</li>
103
<ul><li>Nginx - это веб-сервер, принимающий запросы от клиента и обрабатывающий их. Кроме этого, его можно использовать для создания прокси-серверов и SSL/TLS-терминации.</li>
104
<li>Nginx работает асинхронно с событийно-ориентированной моделью обработки запросов. Благодаря этому он может поддерживать множество соединений без блокирования ввода и вывода.</li>
104
<li>Nginx работает асинхронно с событийно-ориентированной моделью обработки запросов. Благодаря этому он может поддерживать множество соединений без блокирования ввода и вывода.</li>
105
<li>Работа сервера определяется директивами в конфигурационном файле. Кроме глобального уровня управления в Nginx можно настроить локальную конфигурацию для каждого отдельного сайта.</li>
105
<li>Работа сервера определяется директивами в конфигурационном файле. Кроме глобального уровня управления в Nginx можно настроить локальную конфигурацию для каждого отдельного сайта.</li>
106
</ul><a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>
106
</ul><a>Практический курс: "Профессия DevOps-инженер" Узнать о курсе</a>