Настройка веб-сервера

Сервер Apache

Обзор

World Wide Web (веб) — один из наиболее часто используемых интернет-протоколов. В настоящее время веб-сервер в Unix-подобных системах в основном реализуется через серверное программное обеспечение Apache. Для работы с динамическими веб-сайтами разработан комплекс LAMP (Linux + Apache + MySQL + PHP). Веб-сервисы можно сочетать с мультимедийным содержимым, таким как текст, графика, изображения и аудио. Они также поддерживают передачу информации через гиперссылки.

Версия веб-сервера в системе openEuler — это HTTP-сервер Apache 2.4, то есть httpd, который представляет собой веб-сервер с открытым исходным кодом (Open Source), разработанный Apache Software Foundation.

Управление httpd

Обзор

Вы можете использовать инструмент systemctl для управления сервисом httpd, включая запуск, остановку и перезапуск, а также просмотр его состояния. В этом разделе описывается управление HTTP-сервисом Apache.

Предварительные требования

  • Чтобы использовать HTTP-сервис Apache, убедитесь, что в вашей системе установлен RPM-пакет сервиса httpd.

    Для установки пакета выполните от имени пользователя root команду:

    dnf install httpd

    Дополнительные сведения см. в разделе Управление сервисами.

  • Для запуска, остановки и перезапуска сервиса httpd необходимы права пользователя root.

Запуск сервиса

Чтобы запустить и использовать сервис httpd, выполните команду:

systemctl start httpd

Чтобы сервис httpd запускался автоматически при запуске системы, команда и ее выходные данные должны быть следующими:

systemctl enable httpd

Пример вывода:

Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.

Если запущенный HTTP-сервер Apache работает как защищенный сервер, то после запуска системы потребуется пароль. Пароль представляет собой зашифрованный закрытый ключ SSL.

Остановка сервиса

Чтобы остановить сервис httpd, выполните команду:

systemctl stop httpd

Чтобы сервис не запускался автоматически при запуске системы, команда и ее выходные данные должны быть следующими:

systemctl disable httpd

Пример вывода:

Removed /etc/systemd/system/multi-user.target.wants/httpd.service.

Перезапуск сервиса

Вы можете перезапустить сервис любым из следующих способов.

  • Перезапустите сервис, выполнив команду restart:

    systemctl restart httpd

    Эта команда останавливает запущенный сервис httpd и сразу же перезапускает его. Она обычно используется после установки сервиса или при удалении динамически загружаемого модуля (например, PHP).

  • Перезагрузите конфигурацию.

    systemctl reload httpd

    Эта команда заставляет запущенный сервис httpd перезагрузить свой файл конфигурации. При этом все обрабатываемые в данный момент запросы будут приостановлены, из-за чего браузер клиента отобразит сообщение об ошибке или перезагрузит некоторые страницы.

  • Перезагрузите конфигурацию, не затрагивая запрос об активации.

    apachectl graceful

    Эта команда заставляет запущенный сервис httpd перезагрузить свой файл конфигурации. При этом все обрабатываемые в данный момент запросы продолжат использовать старый конфигурационный файл.

Проверка состояния сервиса

Проверьте, работает ли сервис httpd:

systemctl is-active httpd

Если в выводе команды есть слово active, то сервис работает.

Описание файла конфигурации

После запуска сервис httpd по умолчанию считывает файл конфигурации.

Описание файлов конфигурации:

  • /etc/httpd/conf/httpd.conf

    Основной файл конфигурации.

  • /etc/httpd/conf.d/

    Дополнительный каталог файлов конфигурации, которые также содержатся в главном файле конфигурации.

    Дополнительный каталог файла конфигурации содержится в главном файле конфигурации.

Хотя в большинстве случаев можно использовать конфигурацию по умолчанию, следует ознакомиться с некоторыми ее важными элементами. После изменения файла конфигурации выполните от имени пользователя root следующую команду, чтобы проверить синтаксические ошибки, которые могут в нем возникнуть:

apachectl configtest

Если отобразится следующее, то синтаксис файла конфигурации верный.

Syntax OK

Перед изменением файла конфигурации создайте резервную копию исходного файла, чтобы можно было быстро восстановить его в случае сбоя. Измененный файл конфигурации вступит в силу только после перезапуска веб-сервиса.

Модуль управления и SSL

Обзор

Сервис httpd — это модульное приложение, распространяемое со многими динамическими общими объектами (Dynamic Shared Object, DSO). Объекты DSO могут динамически загружаться и удаляться по мере необходимости во время работы. Эти модули расположены в каталоге /usr/lib64/httpd/modules/ операционной системы сервера. В этом разделе описываются загрузка и запись модуля.

Загрузка модуля

Чтобы загрузить специальный модуль DSO, можно использовать указание загрузочного модуля в файле конфигурации. Модули, предоставляемые в сторонних пакетах ПО, имеют собственные файлы конфигурации в каталоге /etc/httpd/conf.modules.d/.

Например, чтобы загрузить DSO-модуль asis, выполните следующие действия.

  1. В файле /etc/httpd/conf.modules.d/00-optional.conf от имени пользователя root раскомментируйте следующую строку конфигурации:

    LoadModule asis_module modules/mod_asis.so
  2. Перезапустите httpd-сервис от имени пользователя root, чтобы перезагрузить файл конфигурации:

    systemctl restart httpd
  3. Убедитесь, что DSO-модуль asis загружен:

    httpd -M | grep asis

    Если отображается следующая информация, то DSO-модуль asis загружен:

    asis_module (shared)

Стандартные команды httpd:

  • Просмотр номера версии httpd:

    httpd -v
  • Просмотр статических модулей, скомпилированных в программу httpd:

    httpd -l
  • Просмотр статических модулей и загруженных динамических модулей, которые были скомпилированы в программу httpd:

    httpd -M

Общие сведения об SSL

Secure Sockets Layer (SSL) — это протокол шифрования, обеспечивающий безопасную связь между сервером и клиентом. Протокол Transport Layer Security (TLS) обеспечивает безопасность и целостность данных для сетевого взаимодействия. Система openEuler поддерживает Mozilla Network Security Services (NSS) в качестве протокола безопасности TLS. Чтобы загрузить SSL, выполните следующие действия.

  1. Установите RPM-пакет mod_ssl от имени пользователя root.

    dnf install mod_ssl
  2. Перезапустите httpd-сервис от имени пользователя root, чтобы перезагрузить файл конфигурации:

    systemctl restart httpd
  3. Чтобы убедиться, что протокол SSL загружен, выполните команду:

    httpd -M | grep ssl

    Если отображается следующая информация, то SSL загружен:

    ssl_module (shared)

Проверка настройки веб-сервиса

После настройки веб-сервера выполните следующие операции, чтобы проверить настройку веб-сервера.

  1. От имени пользователя root выполните команду, чтобы проверить IP-адрес сервера:

    ifconfig

    Если отображается следующая информация, то IP-адрес сервера — 192.168.1.60.

    enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.60  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 fe80::5054:ff:fe95:499f  prefixlen 64  scopeid 0x20<link>
    ether 52:54:00:95:49:9f  txqueuelen 1000  (Ethernet)
    RX packets 150713207  bytes 49333673733 (45.9 GiB)
    RX errors 0  dropped 43  overruns 0  frame 0
    TX packets 2246438  bytes 203186675 (193.7 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    ether 52:54:00:7d:80:9e  txqueuelen 1000  (Ethernet)
    RX packets 149937274  bytes 44652889185 (41.5 GiB)
    RX errors 0  dropped 1102561  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 1000  (Local Loopback)
    RX packets 37096  bytes 3447369 (3.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 37096  bytes 3447369 (3.2 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  2. Настройте брандмауэр от имени пользователя root.

    firewall-cmd --add-service=http --permanent
    firewall-cmd --reload
  3. Убедитесь, что веб-сервер настроен. Для проверки можно выбрать операционную систему Linux или Windows.

    • Использование ОС Linux

      Выполните следующую команду, чтобы проверить, доступна ли веб-страница. Если сервис настроен должным образом, доступ к веб-странице возможен.

      curl http://192.168.1.60

      Выполните следующую команду и убедитесь, что она выводит значение 0. Если вывод команды — 0, то сервер httpd настроен.

      echo $?
    • Использование ОС Windows

      Откройте браузер и введите в строке адреса адрес http://192.168.1.60. Если доступ к веб-странице возможен, то сервер httpd настроен.

      Если изменён номер порта, введите адрес в следующем формате:

      http://192.168.1.60:<порт>

Сервер Nginx

Обзор

Nginx — это веб-сервер небольшого размера, который также действует как обратный прокси-сервер и прокси-сервер электронной почты (IMAP/POP3). Он потребляет мало памяти, обеспечивает высокий параллелизм и поддерживает FastCGI, SSL, виртуальные узлы, перезапись URL, Gzip и расширения многих сторонних модулей.

Установка Nginx

  1. Настройте локальный источник YUM. Подробнее см. в разделе Настройка сервера репозитория.

  2. Очистите кеш:

    dnf clean all
  3. Создайте кеш:

    dnf makecache
  4. Установите сервер Nginx:

    dnf install nginx
  5. Проверьте установленный пакет RPM:

    dnf list all | grep nginx

Управление Nginx

Обзор

Вы можете использовать инструмент systemctl для управления сервисом NGINX, включая запуск, остановку и перезапуск, а также просмотр его состояния. В этом разделе описывается, как управлять сервисом NGINX.

Предварительные требования

Убедитесь, что сервис NGINX установлен. Если нет, установите его, как описано выше.

Дополнительные сведения см. в разделе Управление сервисами.

Для запуска, остановки и перезапуска сервиса NGINX необходимы права пользователя root.

Запуск сервиса

Чтобы запустить и использовать сервис Nginx, выполните команду:

systemctl start nginx

Если вы хотите, чтобы сервис NGINX запускался автоматически при запуске системы, команда и ее выходные данные должны быть следующими:

systemctl enable nginx
Пример вывода:
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

Если запущенный сервер Nginx работает как защищенный сервер, то после запуска системы потребуется пароль. Пароль представляет собой зашифрованный закрытый ключ SSL.

Остановка сервиса

Чтобы остановить сервис Nginx, выполните команду:

systemctl stop nginx

Если вы не хотите, чтобы сервис автоматически запускался при запуске системы, команда и ее выходные данные должны быть следующими.

systemctl disable nginx

Пример вывода:

Removed /etc/systemd/system/multi-user.target.wants/nginx.service.

Перезапуск сервиса

Вы можете перезапустить сервис любым из следующих способов.

  • Перезапустите сервис.

    systemctl restart nginx

    Эта команда останавливает запущенный сервис Nginx и сразу же перезапускает его. Она обычно используется после установки сервиса или при удалении динамически загружаемого модуля (например, PHP).

  • Перезагрузите конфигурацию.

    systemctl reload nginx

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

  • Перезапустите Nginx без нарушения работы.

    kill -HUP PID

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

Проверка состояния сервиса

Проверьте, работает ли сервис Nginx:

systemctl is-active nginx

Если в выводе команды есть слово active, то сервис работает.

Описание файла конфигурации

После запуска сервис NGINX по умолчанию считывает файл конфигурации, показанный в [таблице 2](#table24341012096).

Описание файлов конфигурации:

  • /etc/nginx/nginx.conf — основной файл конфигурации.

  • /etc/nginx/conf.d/ — дополнительный каталог файлов конфигурации, которые также содержатся в главном файле конфигурации.

    Дополнительный каталог файла конфигурации содержится в главном файле конфигурации.

Хотя в большинстве случаев можно использовать конфигурацию по умолчанию, следует ознакомиться с некоторыми ее важными элементами. После изменения файла конфигурации выполните от имени пользователя root следующую команду, чтобы проверить синтаксические ошибки, которые могут в нем возникнуть:

nginx -t

Если вывод команды содержит слова syntax is ok, то синтаксис файла конфигурации верный.

Перед изменением файла конфигурации создайте резервную копию исходного файла, чтобы можно было быстро восстановить его в случае сбоя.

Измененный файл конфигурации вступит в силу только после перезапуска веб-сервиса.

Модули управления

Обзор

Сервис Nginx — это модульное приложение, распространяемое со многими динамическими общими объектами (Dynamic Shared Object, DSO). Объекты DSO могут динамически загружаться и удаляться по мере необходимости во время работы. Эти модули расположены в каталоге /usr/lib64/nginx/modules/ операционной системы сервера. В этом разделе описываются загрузка и запись модуля.

Загрузка модуля

Чтобы загрузить специальный модуль DSO, можно использовать указание загрузочного модуля в файле конфигурации. Как правило, модули, предоставляемые в сторонних пакетах ПО, имеют собственные файлы конфигурации в каталоге /usr/share/nginx/modules.

Объект DSO автоматически загружается при использовании команды dnf install nginx для установки Nginx в операционной системе openEuler.

Проверка настройки веб-сервиса

После настройки веб-сервера выполните следующие операции, чтобы проверить настройку веб-сервера.

  1. От имени пользователя root выполните команду, чтобы проверить IP-адрес сервера:

    ifconfig

    Если отображается следующая информация, то IP-адрес сервера — 192.168.1.60.

    enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 192.168.1.60  netmask 255.255.255.0  broadcast 192.168.1.255
    inet6 fe80::5054:ff:fe95:499f  prefixlen 64  scopeid 0x20<link>
    ether 52:54:00:95:49:9f  txqueuelen 1000  (Ethernet)
    RX packets 150713207  bytes 49333673733 (45.9 GiB)
    RX errors 0  dropped 43  overruns 0  frame 0
    TX packets 2246438  bytes 203186675 (193.7 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    enp4s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    ether 52:54:00:7d:80:9e  txqueuelen 1000  (Ethernet)
    RX packets 149937274  bytes 44652889185 (41.5 GiB)
    RX errors 0  dropped 1102561  overruns 0  frame 0
    TX packets 0  bytes 0 (0.0 B)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
    
    lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
    inet 127.0.0.1  netmask 255.0.0.0
    inet6 ::1  prefixlen 128  scopeid 0x10<host>
    loop  txqueuelen 1000  (Local Loopback)
    RX packets 37096  bytes 3447369 (3.2 MiB)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 37096  bytes 3447369 (3.2 MiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
  2. Настройте брандмауэр от имени пользователя root.

    firewall-cmd --add-service=http --permanent
    firewall-cmd --reload
  3. Убедитесь, что веб-сервер настроен. Для проверки можно выбрать операционную систему Linux или Windows.

    • Использование ОС Linux

      Выполните следующую команду, чтобы проверить, доступна ли веб-страница. Если сервис настроен должным образом, доступ к веб-странице возможен.

      curl http://192.168.1.60

      Выполните следующую команду и убедитесь, что она выводит значение 0. Если вывод команды — 0, то сервер NGINX настроен.

      echo $?
    • Использование ОС Windows

      Откройте браузер и введите в строке адреса http://192.168.1.60. Если доступ к веб-странице возможен, то сервер NGINX настроен.

      Если изменен номер порта, введите адрес в следующем формате:

      http://192.168.1.60:<порт>