Apache2: различия между версиями
Нет описания правки |
Нет описания правки |
||
Строка 107: | Строка 107: | ||
HostnameLookups On | HostnameLookups On | ||
При включении данного параметра в логах сервера вместо доменных имен будут записываться IP-адреса. | При включении данного параметра в логах сервера вместо доменных имен будут записываться IP-адреса. | ||
==Виртуальный хостинг== | |||
Виртуальный хостинг - это когда веб-запросы приходят на один IP - адрес, но под разными именами. | |||
Например, DNS-имена: | |||
*salomatin.ru | |||
*ivanov.ru | |||
посылают на 81.81.81.81, а apache сам решает в какой каталог одного сервера направлять эти запросы. | |||
===Шаг 1: Регистрируем домены на один IP адрес=== | |||
Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на [[Alterator-bind|Bind]]. | |||
Если домен на Samba, то командой: | |||
# samba-tool dns add 10.4.4.173 petr.ru host1 A 10.4.4.41 | |||
Где: | |||
*10.4.4.173 - адрес контроллера домена | |||
*petr.ru - адрес домена | |||
*host1 - имя хоста | |||
*A - тип записи | |||
*10.4.4.41 - адрес хоста | |||
{{Note|В приведенных примерах необходимо заменить host.test.ru на имя вашего реального домена. Только в этом случае файл будет указывать веб-серверу, где найти корневой каталог сайта и куда необходимо сохранять журналы ошибок и обращений к сайту.}} | |||
Потом прописываем на сервере адреса в hosts: | |||
# mcedit /etc/hosts | |||
192.168.0.5 host1.test.ru | |||
192.168.0.5 host2.test.ru | |||
192.168.0.5 host3.test.ru | |||
Выполняем: | |||
/etc/chroot.d/resolv.all | |||
Тестируем с клиентского компьютера от имени простого пользователя: | |||
$ ping host1.test.ru | |||
$ ping host2.test.ru | |||
$ ping host3.test.ru | |||
Пинг должен попадать на IP-адрес сервера. | |||
===Шаг 2: Разрешаем загружать виртуальные сайты=== | |||
В файле {{path|/etc/httpd2/conf/sites-start.d/000-default.conf}}: | |||
ports_all=yes | |||
default=yes | |||
vhosts=no | |||
Необходимо изменить последнюю строку: | |||
vhosts=yes | |||
Для применения изменений запустить: | |||
# a2chkconfig | |||
===Шаг 3: Прописываем виртуальные хосты=== | |||
В файле {{path|/etc/httpd2/conf/sites-available/vhosts.conf}} дописываем | |||
<VirtualHost *:80> | |||
#ServerAdmin webmaster@dummy-host.example.com | |||
DocumentRoot /var/www/vhosts/host1 | |||
ServerName host1 | |||
#ServerAlias http://www.host1 | |||
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/host2 | |||
ServerName host2 | |||
#ServerAlias http://www.host2 | |||
ErrorLog /var/log/httpd2/host2-error_log | |||
CustomLog /var/log/httpd2/host2-access_log common | |||
</VirtualHost> | |||
# | |||
<VirtualHost *:80> | |||
#ServerAdmin webmaster@dummy-host.example.com | |||
DocumentRoot /var/www/vhosts/host3 | |||
ServerName host3 | |||
#ServerAlias http://www.host3 | |||
ErrorLog /var/log/httpd2/host3-error_log | |||
CustomLog /var/log/httpd2/host3-access_log common | |||
</VirtualHost> | |||
===Шаг 4: Создаем домашние каталоги виртуальных хостов=== | |||
В {{path|/var/www/vhosts}} создаем три каталога host1; host2; host3, в которых размещаем разные тестовые веб-страницы. | |||
Заходим со своего рабочего настольного компьютера | |||
*http://host1 | |||
*http://host2 | |||
*http://host3 | |||
и в каждом видим свою тестовую страницу. | |||
=Удаление= | =Удаление= |
Версия от 11:42, 16 января 2025
Apache Http Server | |
---|---|
Появился в: | 1995 |
Оф. сайт: | httpd.apache.org |
Репозиторий ALT Linux | apache2 |
Лицензия: | Apache License 2.0 |
Apache Httpd - свободный веб-сервер.
Установка
Apache2 можно установить как отдельно:
# apt-get install apache2
Так и в наборе LAMP:
# apt-get install lamp-server
В данном случае будут установлены:
- Apache2
- PHP
- MariaDB
Настройка
Включаем и запускаем службы Apache и MySQL:
# systemctl enable --now httpd2 # systemctl enable --now mysqld
Файлы конфигурации Apache хранятся в /etc/httpd2/conf/.
Основной файл конфигурации /etc/httpd2/conf/httpd2.conf включает в себя различные другие файлы настроек и конфигураций.
Опции
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-имена:
- salomatin.ru
- ivanov.ru
посылают на 81.81.81.81, а apache сам решает в какой каталог одного сервера направлять эти запросы.
Шаг 1: Регистрируем домены на один IP адрес
Для внешнего сайта необходимо зарегистрировать домен на регистраторе, для внутреннего на Bind.
Если домен на Samba, то командой:
# samba-tool dns add 10.4.4.173 petr.ru host1 A 10.4.4.41
Где:
- 10.4.4.173 - адрес контроллера домена
- petr.ru - адрес домена
- host1 - имя хоста
- A - тип записи
- 10.4.4.41 - адрес хоста
Потом прописываем на сервере адреса в hosts:
# mcedit /etc/hosts
192.168.0.5 host1.test.ru 192.168.0.5 host2.test.ru 192.168.0.5 host3.test.ru
Выполняем:
/etc/chroot.d/resolv.all
Тестируем с клиентского компьютера от имени простого пользователя:
$ ping host1.test.ru $ ping host2.test.ru $ ping host3.test.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 #ServerAlias http://www.host1 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/host2 ServerName host2 #ServerAlias http://www.host2 ErrorLog /var/log/httpd2/host2-error_log CustomLog /var/log/httpd2/host2-access_log common </VirtualHost> # <VirtualHost *:80> #ServerAdmin webmaster@dummy-host.example.com DocumentRoot /var/www/vhosts/host3 ServerName host3 #ServerAlias http://www.host3 ErrorLog /var/log/httpd2/host3-error_log CustomLog /var/log/httpd2/host3-access_log common </VirtualHost>
Шаг 4: Создаем домашние каталоги виртуальных хостов
В /var/www/vhosts создаем три каталога host1; host2; host3, в которых размещаем разные тестовые веб-страницы.
Заходим со своего рабочего настольного компьютера
и в каждом видим свою тестовую страницу.