Заголовки ответов сервера Apache - важная часть HTTP-коммуникации между сервером и клиентом. Они содержат информацию о сервере, ресурсах, к которым осуществляется доступ, и дополнительные метаданные, которые могут влиять на поведение веб-браузеров и других клиентов.
Изменение заголовков ответа может быть полезно для различных целей, таких как усиление безопасности, оптимизация производительности или соответствие определенным стандартам или требованиям. Например, добавление заголовков, связанных с безопасностью, таких как Content-Security-Policy, может повысить безопасность веб-приложения.
В Apache заголовки ответов могут быть изменены с помощью модуля mod_headers. Этот модуль предоставляет директивы для добавления, изменения или удаления заголовков HTTP-ответов. Помимо всех стандартных заголовков ответа, вы также можете добавить свои собственные заголовки, если это необходимо.
Шаги по изменению заголовка ответа сервера Apache:
Запустите терминал.
Включите модуль Headers для Apache.
1 | sudo a2enmod headers |
- В дистрибутивах с поддержкой a2enmod можно просто выполнить приведенную выше команду без необходимости вручную включать необходимые модули.
- В CentOS и Red Hat модуль включается по умолчанию, поэтому ручное включение модулей не требуется.
Откройте файл конфигурации вашего сайта Apache с помощью удобного текстового редактора.
1 | sudo nano /etc/apache2/sites-available/00-mysite.conf |
Найдите раздел, в котором вы хотите применить пользовательский заголовок, например, в определенной директиве VirtualHost или Directory.
1 2 3 4 5 6 7 8 9 | <VirtualHost *:80> #ServerName example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Добавьте или изменяйте заголовки в конфигурационном файле с помощью директивы Header с собственным именем и значением.
1 2 3 4 5 6 7 8 9 10 11 | <VirtualHost *:80> #ServerName example.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html Header set CustomHeader "any values here" ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Сохраните и выйдите из текстового редактора.
Перезагрузите или перезапустите службу Apache, чтобы применить изменения.
1 | sudo systemctl restart apache2 |
1 | sudo systemctl restart httpd |
Убедитесь, что Apache возвращает настроенный пользовательский заголовок инструментами типа Curl.
1 | curl -I [IP] или [домен] |
Пример вывода
1 2 3 4 5 6 | HTTP/1.1 200 OK ... Content-Length: 10671 Vary: Accept-Encoding CustomHeader: any values here Content-Type: text/html |
Посмотрите на свой пользовательский заголовок в ответе, чтобы подтвердить его отправку.