Главная » Компьютерные сети » Веб-сервер Nginx & Apache

Веб-сервер Nginx & Apache

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://corp40.un