Настройка вебсервера Apache 2.4 на AlmaLinux 8.9
Подробная инструкция по настройке веб-сервера Apache, дополнительных модулей, виртуальных хостов, работе с Cloudflare и других нюансах.
Настройка сервера на AlmaLinux 8.9 -> Apache 2.4
В стандартной комплектации AlmaLinux 8.8 поставляется с вебсервером Apache 2.4 который по умолчанию отключен. Для автоматического запуска при включении сервера надо выполнить команду: chkconfig httpd on
Конфигурация iptables по умолчанию в AlmaLinux 8.8 не разрешает доступ к портам HTTP (TCP порт 80) и HTTPS (TCP порт 443), используемым веб-сервером Apache. Необходимо открыть эти порты. Проще всего это сделать через графический интерфейс Firewall.
Редактируем конфигурацию Apache: vim /etc/httpd/conf/httpd.confследующий файл загружает большинство модулей, включенных в сам HTTP-сервер Apache - проверяем наличие необходимых нам модулей: vim /etc/httpd/conf.modules.d/00-base.confредактируем виртуальные хосты: vim /etc/httpd/conf.d/vhosts.confпроверяем версию: httpd -vболее подробно об Apache: httpd -Vпроверить конфигурационные файлы: httpd -tили apachectl configtest
При возникновении ошибки "because search permissions are missing on a component of the path" выполнить следующую команду: chmod +rx /home /home/user1 /home/user1/public_html
Виртуальные хосты
Главная задача веб-сервера - обслуживать сайты. Виртуальные хосты позволяют httpd серверу работать с любым их количеством.
Для начала необходимо создать запись в файле vhosts.conf для базовой конфигурации: <VirtualHost 192.168.1.100:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot "/home/example/public_html"
#RewriteCond %{HTTPS} off
#RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</VirtualHost>
Квоты
Квоты позволяют ограничивать размер дискового пространства, которое может использовать пользователь или группа. Для того, чтобы устанавливать квоты в системе AlmaLinux необходимо выполнить несколько шагов.
Установка необходимых пакетов: dnf install quotaвключение квот на уровне файловой системы путем добавления необходимых параметров (usrquota и grpquota) в файл /etc/fstab - редактируем его: vim /etc/fstabотредактированная строка может выглядеть так: /dev/mapper/almalinux-home /home xfs defaults,usrquota,grpquota 0 0далее необходимо перемонтировать файловую систему:mount -o remount /home
Cloudflare
Особенности настройки Cloudflare. При работе с Cloudflare следует использовать максимально безопасный вариант - Full (strict). Это сквозное шифрование данных от браузера пользователя до сервера, защищённое SSL сертификатом, выданным доверенным Центром Сертификации или самой Cloudflare.
Следует понимать, что с любым из SSL-сертификатов на бесплатном тарифе соединение от браузера пользователя до Cloudflare будет происходить через SSL-сертификат полученный самой Cloudflare в ваших интересах (на момент написания этой статьи их выдает Google Trust Services LLC), а от Cloudflare до вашего сервера либо доверенным ЦС, либо сгенерированным самой Cloudflare. В обоих вариантах Cloudflare будет иметь доступ к расшифрованному трафику.
Исходя из этого получать SSL-сертификат в доверенном ЦС не имеет практического смысла, хотя это и возможно. Для получения SSL-сертификата от Cloudflare надо нажать в меню SSL/TLS, выбрать подменю Origin Server и нажать на кнопку "Create Certificate". После чего скопировать сертификат и ключ на свой сервер и добавить информацию о них в файл vhosts.conf. По умолчанию Cloudflare выдает свой сертификат сроком на 15 лет.
Перед включением этого режима также следует убедиться, что сервер разрешает HTTPS-соединения через порт 443. В файле vhosts.conf это может выглядеть так: <VirtualHost 192.168.1.10:443>
...
SSLEngine on
SSLCertificateFile /etc/httpd/ssl/example.com/fullchain.pem
SSLCertificateKeyFile /etc/httpd/ssl/example.com/privkey.pem
...В противном случае Cloudflare вернет ошибку 526.
Паролирование директорий
После того, как сайт настроен и работает может потребоваться закрыть паролем какой-то определенный каталог. Для этого потребуется создать файл .htaccess и пароль к нему. Ключ -c создает новый файл с паролем, ключ -B определяет самый стойкий алгоритм шифрования.
Создаем файл с пользователем "user": htpasswd -cB /home/path-to-file/.htpasswd userчтобы добавить пользователей "user2" и "user3": htpasswd /home/path-to-file/.htpasswd user2
htpasswd /home/path-to-file/.htpasswd user3
Паролирование сайта
Закрыть паролем можно не только какой-то из каталогов, но и весь сайт целиком. Сделать это можно как с помощью .htaccess так и через vhosts.conf. Для этого в файле vhosts.conf добавляем соответствующие инструкции.
Теперь для доступа к корневой директории сайта потребуется действительный пользователь: <Directory "/home/example/public_html">
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /home/example/.htpasswds/path-to-file/.htpasswd
Require valid-user
</Directory>
<Directory "/home/example/public_html/admin">
AuthType Basic
AuthName "Admin Area"
AuthUserFile /home/example/.htpasswds/path-to-file/.htpasswd
Require user user1 user2
</Directory>а доступ к папке "/admin/" разрешен только пользователям "user1" и "user2".
Метки: apache; httpd; cgi; vhosts
Опрос
Адаптирован ли ваш сайт для смартфонов и планшетов? (голосов: 35)
- Да - 4 (11%)
- Нет - 2 (6%)
- Не знаю - 1 (3%)
- Нет сайта - 28 (80%)