HTML Diff
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>