Apache2
Apache Http Server | |
---|---|
Появился в: | 1995 |
Оф. сайт: | httpd.apache.org |
Репозиторий ALT Linux | apache2 |
Лицензия: | Apache License 2.0 |
apache2 (Apache HTTP Server) – веб-сервер, который представляет собой программное обеспечение с открытым исходным кодом. Он используется для размещения веб-сайтов и доступа к ним.
Благодаря модульной структуре Apache обладает гибкостью и расширяемостью, а также надёжностью и стабильностью работы. Apache поддерживается многими операционными системами, в том числе ОС ALT Linux.
Установка сервера в ALT Linux
Установка
Apache2 можно установить как отдельно:
# apt-get install apache2
Так и в наборе LAMP:
# apt-get install lamp-server
В данном случае будут установлены:
- Apache2
- PHP
- MariaDB
Включаем и запускаем службы Apache и MySQL:
# systemctl enable --now httpd2 # systemctl enable --now mysqld
Управление службой
Команды | ||
---|---|---|
Запуск | # systemctl start httpd2 | # apachectl start |
Остановка | # systemctl stop httpd2 | # apachectl stop |
Перезапуск | # systemctl restart httpd2 | # apachectl restart |
Отключение автозагрузки | # systemctl disable httpd2 | |
Включение автозагрузки | # systemctl enable httpd2 | |
Перезапуск службы без сброса соединений | # systemctl reload httpd2 | |
Состояние службы | # systemctl status httpd2 | |
Версия Apache | # httpd2 -v | |
Содержимое юнита | $ systemctl cat httpd2 |
Более подробную информацию об apachectl можно посмотреть командой man apachectl.
Когда Apache запускается через apachectl, он не регистрируется как служба systemd, поэтому некоторые функции управления процессами, такие как автоматический запуск при загрузке системы, могут потребовать дополнительной настройки. Также будут другие параметры журналирования.
Настройка
Файлы конфигурации Apache хранятся в /etc/httpd2/conf/.
Основной файл конфигурации /etc/httpd2/conf/httpd2.conf включает в себя различные другие файлы настроек и конфигураций.
Опции
Структура файлов
Основные файлы Apache в ALT Linux лежат в /etc/httpd2/.
# ls /etc/httpd2/ -l
итого 4
drwxr-xr-x 18 root root 4096 янв 15 11:20 conf
lrwxrwxrwx 1 root root 21 июл 29 14:51 lock -> ../../var/lock/httpd2
lrwxrwxrwx 1 root root 20 июл 29 14:51 logs -> ../../var/log/httpd2
lrwxrwxrwx 1 root root 31 июл 29 14:51 modules -> ../../usr/lib64/apache2/modules
lrwxrwxrwx 1 root root 20 июл 29 14:51 run -> ../../var/run/httpd2
lrwxrwxrwx 1 root root 31 июл 29 14:51 uploads -> ../../var/spool/apache2/uploads
Основные настройки Apache хранятся в каталоге /etc/httpd2/conf/.
# ls /etc/httpd2/conf/
addon.d httpd2.conf mods-available ports-available sites-enabled
extra-available include mods-enabled ports-enabled sites-start.d
extra-enabled magic mods-start.d ports-start.d ssl.crt
extra-start.d mime.types original sites-available ssl.key
Основными компонентами конфигурации являются:
- модули (mods)
- дополнительная конфигурация (extra)
- порты (ports)
- сайты (sites).
Они же в свою очередь делятся на:
- включенные (enabled)
- доступные (available)
- стартовые (start.d).
Стартовые компоненты хранятся в /etc/httpd2/conf/{mods,sites,port,extra}-start.d/*.conf.
Включенные и стартовые компоненты являются символическими ссылками из available.
httpd2.conf
Пользователь и группа
Данный параметр задается в файле /etc/httpd2/conf/httpd2.conf
User apache2 Group apache2
По соображениям безопасности, как только Apache запускается под root (напрямую или через сценарии запуска), он переключается на эти UID и GID. Пользователь по умолчанию — apache2 создается автоматически во время установки.
Уровень логов
Данный параметр задается в файле /etc/httpd2/conf/httpd2.conf
LogLevel warn
Существуют следующие уровни логирования:
- emerg: критическая ситуация, аварийный сбой, система находится в нерабочем состоянии.
- alert: сложная предаварийная ситуация, необходимо срочно принять меры.
- crit: критические проблемы, которые необходимо решить.
- error: произошла ошибка.
- warn: предупреждение; в системе что-то произошло, но причин для беспокойства нет.
- notice: система в норме, но стоит обратить внимание на её состояние.
- info: важная информация, которую следует принять к сведению.
- Debug: информация для отладки, которая может помочь определить проблему.
- trace[1-8]: Трассировка информации различных уровней детализации.
ports-enabled
Порт
Данный параметр задается в файле /etc/httpd2/conf/ports-enabled/http.conf
Listen 80
Этим параметром задается порт, который будет слушать Apache. Для доступа в Интернет через роутер необходимо перенаправлять порт.
Если вы хотите настроить Apache для локальной работы (например для разработки), или возможно, вы хотите, чтобы он был доступен только с вашего компьютера, замените эту строку на
Listen 127.0.0.1:80.
sites-available
Администратор
Данный параметр задается в файле /etc/httpd2/conf/sites-available/default.conf
ServerAdmin you@example.com
Здесь указывается адрес электронной почты администратора, который можно найти, к примеру, на страницах ошибок.
Корневой каталог
Данный параметр задается в файле /etc/httpd2/conf/sites-available/default.conf
По-умолчанию сайт хранится в /var/www/html/. Но этот путь можно заменить на свой.
Откройте в текстовом редакторе от суперпользователя файл /etc/httpd2/conf/sites-available/default.conf.
Замените в строке DocumentRoot "/var/www/html/" путь на свой.
extra-available
Timeout
Данный параметр задается в файле /etc/httpd2/conf/extra-available/httpd-default.conf
Timeout 300
Он указывает как долго сервер будет пытаться продолжить прерванную передачу или прием данных.
Передача нескольких файлов за соединение
Данные параметры задаются в файле /etc/httpd2/conf/extra-available/httpd-default.conf
KeepAlive On
Он позволяет передавать несколько файлов, за одно соединение, например, не только саму html страницу, но и картинки и css файлы.
MaxKeepAliveRequests 100
Данный параметр указывает максимальное количество запросов за одно соединение (обычно чем больше, тем лучше).
KeepAliveTimeout 5
В данном параметре указывается таймаут соединения. Обычно для загрузки страницы достаточно 5-10 секунд.
IP вместо доменных имен в логах
Данный параметр задается в файле /etc/httpd2/conf/extra-available/httpd-default.conf
HostnameLookups On
При включении данного параметра в логах сервера вместо доменных имен будут записываться IP-адреса.
Виртуальный хостинг
Виртуальный хостинг - это когда веб-запросы приходят на один IP - адрес, но под разными именами.
Например, DNS-имена:
- host1.petr.ru
- site1.petr.ru
посылают на 10.4.4.41, а Apache сам решает в какой каталог одного сервера направлять эти запросы.
Шаг 1: Регистрируем домены на один IP адрес
На AD/DNS-сервере
Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на Bind.
Если домен на Samba, то командой:
# samba-tool dns add 10.4.4.173 petr.ru site1 A 10.4.4.41
Где:
- 10.4.4.173 - адрес контроллера домена
- petr.ru - адрес домена
- site1 - имя хоста
- A - тип записи
- 10.4.4.41 - адрес хоста
По аналогии:
# samba-tool dns add 10.4.4.173 petr.ru host1 A 10.4.4.41
Адреса host1.petr.ru и site1.petr.ru будут отображать страницу index сервера Apache или приветственную страницу ALT Linux, в зависимости от того, что у вас установлено.
На Apache-сервере
Потом прописываем на сервере адреса в hosts:
# mcedit /etc/hosts
10.4.4.41 host1.petr.ru 10.4.4.41 site1.petr.ru
Выполняем:
/etc/chroot.d/resolv.all
Тестируем с клиентского компьютера от имени простого пользователя:
$ ping host1.petr.ru $ ping site1.petr.ru
Пинг должен попадать на IP-адрес сервера.
Шаг 2: Разрешаем загружать виртуальные сайты
В файле /etc/httpd2/conf/sites-start.d/000-default.conf:
ports_all=yes default=yes vhosts=no
Необходимо изменить последнюю строку:
vhosts=yes
Для применения изменений запустить:
# a2chkconfig
Шаг 3: Прописываем виртуальные хосты
В файле /etc/httpd2/conf/sites-available/vhosts.conf дописываем
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/vhosts/host1
ServerName host1.petr.ru
ErrorLog /var/log/httpd2/host1-error_log
CustomLog /var/log/httpd2/host1-access_log common
</VirtualHost>
#
<VirtualHost *:80>
#ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /var/www/vhosts/site1
ServerName site1.petr.ru
ErrorLog /var/log/httpd2/site1-error_log
CustomLog /var/log/httpd2/site1-access_log common
</VirtualHost>
Шаг 4: Создаем домашние каталоги виртуальных хостов
В /var/www/vhosts создаем два каталога host1 и site1, в которых размещаем разные тестовые веб-страницы.
# mkdir -p /var/www/vhosts/host1 # mkdir -p /var/www/vhosts/site1
Создаем файл:
# mcedit /var/www/vhosts/host1/index.html
<!DOCTYPE html> <html> <head> <title>Тестовая страница Host1</title> </head> <body> <header> <h1>Тестовая страница Host1</h1> </header> <h2>Привет HTML и JavaScript</h2> <p>После этой строки будем писать контент и вставлять тестируемый код</p> </body> </html>
# mcedit /var/www/vhosts/site1/index.html
<!DOCTYPE html> <html> <head> <title>Тестовая страница Site1</title> </head> <body> <header> <h1>Тестовая страница Site1</h1> </header> <h2>Привет HTML и JavaScript</h2> <p>После этой строки будем писать контент и вставлять тестируемый код</p> </body> </html>
Назначаем права:
# chmod 755 -R /var/www/vhosts/host1 # chmod 755 -R /var/www/vhosts/site1
Заходим со своего рабочего компьютера:
и в каждом видим свою тестовую страницу.