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

Сервер 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. Для установки пакета rpm выполните от имени пользователя 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 по умолчанию считывает файл конфигурации, показанный в таблице 1 .

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

Хотя в большинстве случаев можно использовать конфигурацию по умолчанию, следует ознакомиться с некоторыми ее важными элементами. После изменения файла конфигурации выполните от имени пользователя 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. После завершения загрузки выполните команду httpd -M от имени пользователя root, чтобы убедиться, что DSO-модуль asis загружен.

    # httpd -M | grep asis
    

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

    asis_module (shared)
    

ПРИМЕЧАНИЕ.
Стандартные команды httpd:
— httpd -v — просмотр номера версии httpd.
— httpd -l — просмотр статических модулей, скомпилированных в программу httpd.
— httpd -M — просмотр статических модулей и загруженных динамических модулей, которые были скомпилированы в программу httpd.

Общие сведения об 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. После завершения загрузки выполните команду httpd -M от имени пользователя root, чтобы убедиться, что протокол 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
    success
    # firewall-cmd --reload
    success
    
  3. Убедитесь, что веб-сервер настроен. Для проверки можно выбрать операционную систему Linux или Windows.

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

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

      $ curl http://192.168.1.60
      

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

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

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

      http://192.168.1.60

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

      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 в качестве пользователя root.

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

    $ dnf list all | grep nginx
    

Управление Nginx#

Обзор#

Вы можете использовать инструмент systemctl для управления сервисом Nginx, включая запуск, остановку и перезапуск, а также просмотр его состояния. В этом разделе описывается, как управлять сервисом 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 .

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

Хотя в большинстве случаев можно использовать конфигурацию по умолчанию, следует ознакомиться с некоторыми ее важными элементами. После изменения файла конфигурации выполните от имени пользователя 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
    success
    # firewall-cmd --reload
    success
    
  3. Убедитесь, что веб-сервер настроен. Для проверки можно выбрать операционную систему Linux или Windows.

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

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

      $ curl http://192.168.1.60
      

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

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

      Откройте браузер и введите в строке адреса следующий адрес. Если доступ к веб-странице возможен, то сервер Nginx настроен.

      http://192.168.1.60

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

      http://192.168.1.60: номер порта