Apache2: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 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

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.
Примечание: Страница еще не завершена! Она может содержать неточности и ошибки.
Apache Http Server
Altenter-menu-apache.png
Появился в: 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 - адрес хоста
Примечание: В приведенных примерах необходимо заменить 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: Разрешаем загружать виртуальные сайты

В файле /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, в которых размещаем разные тестовые веб-страницы.

Заходим со своего рабочего настольного компьютера

и в каждом видим свою тестовую страницу.

Удаление