Apache2: различия между версиями
Строка 193: | Строка 193: | ||
# mkdir -p /var/www/vhosts/host1 | # mkdir -p /var/www/vhosts/host1 | ||
# mkdir -p /var/www/vhosts/site1 | # mkdir -p /var/www/vhosts/site1 | ||
Создаем файл: | |||
# mcedit /var/www/vhosts/host1/index.html | |||
<pre> | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<title>Тестовая страница Host1</title> | |||
</head> | |||
<body> | |||
<header> | |||
<h1>Тестовая страница Host1</h1> | |||
</header> | |||
<h2>Привет HTML и JavaScript</h2> | |||
<p>После этой строки будем писать контент и вставлять тестируемый код</p> | |||
</body> | |||
</html> | |||
</pre> | |||
# mcedit /var/www/vhosts/site1/index.html | |||
<pre> | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<title>Тестовая страница Site1</title> | |||
</head> | |||
<body> | |||
<header> | |||
<h1>Тестовая страница Site1</h1> | |||
</header> | |||
<h2>Привет HTML и JavaScript</h2> | |||
<p>После этой строки будем писать контент и вставлять тестируемый код</p> | |||
</body> | |||
</html> | |||
</pre> | |||
Назначаем права: | Назначаем права: |
Версия от 16:22, 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-имена:
- 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 - адрес домена
- host1 - имя хоста
- 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
Заходим со своего рабочего настольного компьютера
и в каждом видим свою тестовую страницу.