Nginx — мощный инструмент для развертывания веб- сервера.
Области применения Nginx весьма обширны — от кэширования HTTP до создания инвертированного прокси-сервера.
Сейчас Nginx обслуживает
примерно 30,8% всех существующих сайтов мира, о чьих веб-серверах есть
информация в открытом доступе.
Nginx (NGINX, Engine-X, «Энжин-кс») — это бесплатный веб- и почтовый прокси-сервер с непоточной (асинхронной) архитектурой и открытым кодом.
Разработку Nginx начал в 2002 году Игорь Сысоев для Rambler.
А в 2004 году он стал доступен широкому кругу пользователей .
С 2011 года серверное ПО начала выпускать уже собственная фирма Игоря, которая спустя 2 года запустила расширенную платную версию продукта (Nginx Plus).
Весной 2019 года Nginx была выкуплена крупным
американским девелопером F5 Networks.
Nginx работает на ОС Unix-типа и был успешно протестирован на OpenBSD, FreeBSD, Linux, Mac OS X, Solaris. На ОС Windows он стал доступен после выпуска бинарной сборки 0,7.52.
На данный момент функционалом пользуются такие
известные платформы: Rambler, Begun, Yandex, SourceForge.net, WordPress.com,
vk.com. Статистика показывает, что Nginx используют 22,3 млн веб-сайтов и 2,03
млн дополнительных активных сайтов.
Принцип работы Nginx
В отличие от обычного веб-сервера, Nginx не создаёт один поток под каждый запрос, а разделяет его на меньшие однотипные структуры, называемые рабочими соединениями.
Каждое такое соединение обрабатывается отдельным рабочим процессом, а после выполнения они сливаются в единый блок, возвращающий результат в основной процесс обработки данных.
Одно рабочее соединение может обрабатывать до 1024 запросов одного вида одновременно.
Практическое применение
- Отдельный порт/IP. При наличии большого количества статичного контента или файлов для загрузки, можно настроить на отдельном порту или IP-адресу, чтобы осуществлять раздачу. При большом количестве запросов рекомендуется ставить отдельный сервер и подключать к нему Nginx.
- Акселерированное проксирование. В таком случае все пользовательские запросы на статичный контент (картинки, простой HTML, JavaScript, CSS- файлы) поступают сначала на Nginx, а он их обрабатывает самостоятельно. При этом никаких изменений исходного кода не требуется.
- Nginx и FastCGI. Если поддерживается технология FastCGI, Apache вообще можно не использовать. Но в таком случае может потребоваться модификация кодов скриптов.
Архитектура и конфигурация Nginx
sudo apt-get update sudo apt-get install nginx
Чтобы проверить, все ли прошло нормально, можно ввести команду, которая покажет установленную версию:
sudo nginx -v
Для конфигурации Nginx задействуется директория /etc/nginx/.
При дальнейшей работе с сервером важны файл nginx.conf и папка sites-available.
Основные настройки можно в файле nginx.conf. Благодаря этому файлу, все параметры можно настроить по своему усмотрению.
Работать можно
и с настройками по умолчанию.
Настройка конфигурации
Root-каталог Nginx по умолчанию находится в директории
/usr/share/nginx/html.
Все файлы, которые размещаются в нем, автоматически обслуживаются веб-сервером. Место определяется файлом конфигурации, который можно найти в /etc/nginx/conf.d/default.conf.
Новые блоки server создаются через конфигурационные файлы в
/etc/nginx/conf.d. Они буду загружаться при запуске Nginx, если заканчиваются на .conf.
Основной конфигурационный файл сервера находится в /etc/nginx/nginx.conf. Через него изменяются любые настройки.
Запуск
После настройки конфигурации, можно Nginx запустить с помощью команды через
sudo service nginx start
Любое изменение необходимо подтверждать перезагрузкой
service nginx reload
Проверка статуса осуществляется через команду
service nginx status
Apache – это свободное программное обеспечение для размещения веб-сервера.
Он хорошо показывает себя в работе с масштабными проектами, поэтому заслуженно считается одним из самых популярных веб- серверов.
Кроме того, Apache очень гибок в плане настройки, что
даёт возможность реализовать все особенности размещаемого веб-ресурса.
История создания
Apache HTTP Server был выпущен в 1995 году разработчиком Робертом Маккулом из Университета штата Иллинойс (UIUC). Продукт возник как доработанная версия другого HTTP-клиента – NCSA HTTPd 1.3, созданного Робертом ранее.
Основой для модификации стали многочисленные «патчи» или программные «заплатки» для NCSA. Именно отсюда (а не от индейского племени апачей) изначально и происходит название Apache. Оно расшифровывается как «a patchy server» или «сервер с патчами». Разработкой и поддержкой продукта с 1999 года занимается организация Apache Software Foundation (ASF) – сообщество экспертов- энтузиастов со всего мира. Этим же некоммерческим фондом была создана официальная лицензия ПО – Apache License.
В 2000 году ASF представило новую версию Apache 2.0 с
полностью переработанной архитектурой, свободной от кода NCSA. С этого момента
веб-сервер развивается по двум основным веткам – 1.х и 2.х.
Архитектура
Устройство Apache
Apache состоит из ядра и динамической модульной системы. Параметры системы изменяются с помощью конфигурационных файлов.
Ядро
Ядро Apache разработано Apache Software Foundation на языке C. Основные функции — обработка конфигурационных файлов, протокол HTTP/HTTPS и загрузка модулей. Ядро может работать без модулей, но будет иметь ограниченный функционал.
Модульная система
Модуль – отдельный файл, подключение которого расширяет изначальный функционал ядра. Они могут включаться в состав ПО при первоначальной установке или подгружаться позже через изменение конфигурационного файла.
Большинство из них отвечает за определенный аспект обработки клиентского запроса – поддержку различных языков программирования, безопасность, кэширование, аутентификацию и т.д. Таким образом, большая задача разбивается на несколько фаз, каждую из которых решает отдельный, узкоспециализированный модуль.
Для Apache существует больше 500 модулей. Многие популярные
веб-приложения сразу выпускаются в виде модуля к Apache. Например, ISPmanager и
VDSmanager.
Конфигурация
Система конфигурации Apache работает на текстовых файлах с прописанными настройками. Она подразделяется на три условных уровня, для каждого из которых имеется свой конфигурационный файл:
- Уровень конфигурации сервера (файл httpd.conf) – основной конфигурационный файл. Действие распространяется на весь механизм веб-сервера.
- Уровень каталога (файл .htaccess) – дополнительный конфигурационный файл. Его директивы охватывают только каталог, где расположен файл, а также вложенные подкаталоги.
- Уровень виртуального хоста (файл httpd.conf> или extra/httpd-vhosts.conf).
Обычно конфигурационные файлы Apache находятся в папке «conf», а дополнительные конфигурационные файлы во вложенной в нее папке «extra».
Внести изменения можно как через редактирование самого файла,
так и через командную строку.
Виртуальные хосты
Веб-хост – это компонент сервера, отвечающий за обслуживание одного размещенного на нем объекта (сайта, виртуального сервера). Система виртуальных хостов Apache позволяет одновременно запускать несколько проектов с одного IP-адреса.
В Apache можно установить настройки модуля и ядра, а
также вводить лимиты на потребление серверных ресурсов (трафик, RAM, CPU) для
каждого виртуального хоста в отдельности. Это технологическая основа всего
механизма веб-хостинга.
Установка веб-сервера Apache в Debian 11
sudo apt install apache2 apache2-utils
Подтвердите сборку и версию Apache: apache2 -v
Перед началом настройки убедитесь, что в вашей системе запущены службы Apache. Выполните следующую команду, чтобы проверить статус служб apache:
sudo systemctl status apache2
sudo systemctl start apache2
sudo systemctl enable apache2
В корневом каталоге документов HTTP-сервера Apache по умолчанию вы будете размещать HTML-файлы.
Дополнительные файлы конфигурации находятся в каталоге
/var/www/html/
/etc/apache2/apache2.conf
/etc/apache2
Настройте брандмауэр
Разрешите доступ к порту 80 на брандмауэре, выполнив следующую команду:
sudo firewall-cmd –add-service=”http” –permanent
sudo firewall-cmd –add-service=”https” –permanent
sudo firewall-cmd –zone=public –add-port=80/tcp –permanent
sudo firewall-cmd –zone=public –add-port=443/tcp –permanent
Доступ к веб-серверу Nginx или Apache
После успешной установки вы сможете просматривать тестовую веб-страницу Nginx или Apache через свой веб-браузер.
- Введите в браузере: http://your-server-ip-address
- Пример:http://192.168.20.5