Сервер 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, выполните следующие действия.
-
В файле /etc/httpd/conf.modules.d/00-optional.conf от имени пользователя root раскомментируйте следующую строку конфигурации:
LoadModule asis_module modules/mod_asis.so
-
После завершения загрузки перезапустите httpd-сервис от имени пользователя root, чтобы перезагрузить файл конфигурации.
# systemctl restart httpd
-
После завершения загрузки выполните команду 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, выполните следующие действия.
-
Установите RPM-пакет mod_ssl от имени пользователя root.
# dnf install mod_ssl
-
После завершения загрузки перезапустите httpd-сервис от имени пользователя root, чтобы перезагрузить файл конфигурации.
# systemctl restart httpd
-
После завершения загрузки выполните команду httpd -M от имени пользователя root, чтобы убедиться, что протокол SSL загружен.
# httpd -M | grep ssl
Если отображается следующая информация, то SSL загружен.
ssl_module (shared)
Проверка настройки веб-сервиса#
После настройки веб-сервера выполните следующие операции, чтобы проверить настройку веб-сервера.
-
От имени пользователя 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
-
Настройте брандмауэр от имени пользователя root.
# firewall-cmd --add-service=http --permanent success # firewall-cmd --reload success
-
Убедитесь, что веб-сервер настроен. Для проверки можно выбрать операционную систему 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#
-
Настройте локальный источник yum. Подробнее см. в разделе Настройка сервера репозитория .
-
Очистите кэш.
$ dnf clean all
-
Создайте кэш.
$ dnf makecache
-
Установите сервер Nginx в качестве пользователя root.
# dnf install nginx
-
Проверьте установленный пакет 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.
Проверка настройки веб-сервиса#
После настройки веб-сервера выполните следующие операции, чтобы проверить настройку веб-сервера.
-
От имени пользователя 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
-
Настройте брандмауэр от имени пользователя root.
# firewall-cmd --add-service=http --permanent success # firewall-cmd --reload success
-
Убедитесь, что веб-сервер настроен. Для проверки можно выбрать операционную систему 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: номер порта
-