Чтение онлайн

ЖАНРЫ

Linux: Полное руководство

Аллен Питер В.

Шрифт:

Листинг 16.4. Директивы allow, deny

order deny, allow

deny from all

allow from ru

Следующий пример показывает, как разрешить доступ компьютерам только из вашей сети.

Листинг 16.5. Разрешение доступа подсети 192.168.1.0

order deny, allow

deny from all

allow from 192.168.1.

Кроме значений allow,deny и deny,allow, директива order может содержать значение mutual-failure.

В этом случае в доступе будет отказано всем компьютерам, которые явно не указаны в списке allow.

Директиву require можно использовать для защиты каталога паролем. После названия директивы должен следовать список элементов: имена пользователей, групп, которые заданы в директивах AuthUserFile и AuthGroupFile. Можно использовать параметр valid-user, который укажет серверу предоставить доступ любому пользователю, имя которого имеется в директиве AuthUserFile, если он введет правильный пароль. Пример использования приведен в листинге 16.6.

Листинг 16.6. Использование директивы require

<Directory *>

 AuthUserFile /var/secure/.htpasswd

 AuthName Security

 AuthType Basic

 <Limit GET>

order deny,allow

deny form all

allow from mydomain.ru

require valid-user

 </Limit>

</Directory>

В листинге 16.6 для аутентификации используется файл паролей

.htpasswd
, который можно создать с помощью программы htpasswd. Директивы блока Limit разрешают доступ к любому каталогу сервера только пользователям домена
mydomain.ru
.

Кроме параметра valid-user допускается использование параметра users или groups. Данные параметры разрешают доступ только определенным пользователям или группам пользователей. Пример использования параметра users приведен в листинге 16.7.

Листинг 16.7. Применения параметра users

<Directory /users>

 AuthType Basic

 AuthUserFile /var/users/.htpasswd

 AuthName UsersDir

 <Limit GET POST>

require users denis igor evg

 </Limit>

</Directory>

Блок директив Location

С помощью директив, расположенных в блоке Location, можно задать определенный URL-адрес, предназначенный для обозначения каталогов, файлов или групп файлов. Обозначить группу файлов можно с помощью шаблонов, например, шаблон *.html определяет все файлы, имена которых заканчиваются на .html, В URL-адрес не включается протокол и имя сервера. Пример описания блока Location представлен в листинге 16.8.

Листинг 16.8. Блок Location

<Location URL>

 директивы управления доступом

</Location>

16.4.

Файл ротации журналов /etc/logrotate.d/httpd

Файл

/etc/logrotate.d/httpd
(или
/etc/logrotate.d/apache
— для версий Apache до 2.0) задает параметры ротации журналов веб-сервера, что позволяет поддерживать порядок в журнальном хозяйстве. Пример этого файла приведен в листинге 16.9.

Листинг 16.9. Файл /etc/logrotate.d/httpd (Apache 2.0)

/var/log/httpd/*_log {

 missingok

 notifempty

 sharedscripts

 postrotate

 /usr/bin/killall -HUP httpd

 endscript

}

Убедитесь, что режим доступа к файлу /etc/logrotate.d/httpd равен 0640 и владельцем этого файла является пользователь root.

16.5. Системный файл конфигурации /etc/sysconfig/httpd

Этот файл позволяет передать серверу Apache системную информацию, например, параметры запуска.

Предположим, что вы хотите запустить сервер Apache с включенной поддержкой SSL. Для этого в файл

/etc/sysconfig/httpd
добавьте строку:

OPTIONS="-DSSL"

Вам нужно только добавить нужные параметры в директиву OPTIONS, а обо всем остальном позаботится сценарий запуска

/etc/init.d/httpd
. Нужно отметить, что файл
/etc/sysconfig/httpd
появился в версии Apache 2.0.

16.6. Сценарий запуска сервера Apache /etc/init.d/httpd

Стандартный сценарий запуска веб-сервера Apache устанавливается из того же пакета, что и сам сервер, В версии Apache 2.0 можно вызывать сценарий запуска со следующими параметрами:

♦ start — запуск сервера;

♦ stop — завершение работы сервера;

♦ restart — перезапуск сервера;

♦ status — информация о работе сервера;

♦ condrestart — перезапуск сервера при наличии файла

/var/run/httpd.pid
. Этот файл создается при запуске сервера и удаляется при его останове. Если файл
httpd.pid
не удален, значит, сервер не был остановлен корректно: например, произошел сбой системы или банальное отключение питания.

Что же касается более старых версий Apache, то сценарии запуска позволяют указывать куда больше параметров, чем во второй версии:

♦ start — запуск сервера;

♦ stop — завершение работы сервера;

♦ restart — перезапуск сервера;

♦ reload — перезагрузка сервера. В отличие от перезапуска, когда сервер сначала останавливается командой kill (то есть, просто «убивается»), а потом запускается, при перезагрузке серверу передается сигнал HUP. Перезагрузка может понадобиться при изменении файла конфигурации сервера, чтобы изменения вступили в силу;

♦ condrestart — то же, что и одноименный параметр, описанный выше;

Поделиться с друзьями: