Колисниченко Д.Н. - Linux-сервер своими руками (1077324), страница 72
Текст из файла (страница 72)
Например, вы можете запустить# какую-нибудь программу для обработки файла данного типа.I Формат: Action media/type /cgi-script/location# Формат: Action handler-name /cgi-script/location####Директива MetaDir определяет имя каталога, в котором серверApache может найти информационные файлы meta. Эти файлы содержатдополнительные заголовки HTTP, которые будут добавлены кдокументу перед его передачей клиенту.#MetaDir .web# Директива MetaSuffix определяет имя суффикса файла, который# содержит meta-тэги.#MetaSuffix .meta# Здесь можно определить сообщения об ошибках.# Это можно сделать тремя методами:# 1) обыкновенный текст# ErrorDocument 500 "The server made a boo boo.# n.b.
the (") marks it as text, it does not get output## 2) локальное перенаправление# ErrorDocument 404 /missing.html# to redirect to local url /missing.html# ErrorDocument 404 /cgi-bin/missing_handler .pi# n.b. can redirect to a script or a document using server-side-includes.## 3) внешнее перенаправление# ErrorDocument 402 http://some.other_server.com/subscription_info.htmlf<Location /manual>ErrorDocument 404 "The document you requested has not beeninstalled on your system.
Please install the apache-manualpackage.</Location>f Модуль mod_mime_magic позволяет серверу использовать различные# подсказки из файла для определения его типа.# MimeMagicFile /etc/httpd/conf/magic# Следующие директивы необходимы для браузеров Netscape 2.x и# Internet Explorer 4.ОЬ2304Сервер ApacheBrowserMatch "Mozilla/2" nokeepaliveBrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 forceresponse-1.0# Следующие директивы отключают ответы НТТР/1.1 для браузеров,I которые не поддерживают протокол HTTP/1.1BrowserMatch "RealPlayer 4\.0" force-response-1.ОBrowserMatch "Java/l\.0" force-response-1.0BrowserMatch "JDK/1\,0" force-response-1.0#Настройки доступа# В этом разделе определяются настройки сервера, которые управляют# доступом к серверу.
Раньше эти настройки находились в файлеI access,conf.######Каждый каталог, к которому Apache может получить доступ,может быть сконфигурирован определенным образом. Можнозапретить выполнение некоторых операций, доступ определенныхпользователей или узлов сети.Установки доступа распространяются на весь каталог и на все егоподкаталоги.# Прежде всего, конфигурируем корневой каталог для установки# полномочий доступа.<Directory />Options Indexes Includes FollowSymLinksAllowOverride None</Directory><Directory /home>I Здесь должны быть определены директивы "Includes", "FollowSymLinks",i "ExecCGI", "MultiViews" или любая комбинация "Indexes"Options Indexes Includes FollowSymLinksAllowOverride All# Разрешает доступ всемorder allow,denyallow from all</Directory># Каталоги /var/www/cgi-bin и /var/www/protected-cgi-bin должны бытьI определены с помощью директивы ScriptAliased305Сервер Apache<Directory /var/www/cgi-bin>AllowOverride AllOptions ExecCGI</Directory><Directory /var/www/protected-cgi-bin>order deny,allowdeny from allallow from localhostfallow from .your_domain.comAllowOverride NoneOptions ExecCGI</Directory># Разрешает отчеты о состояния сервера<Location /server-status>SetHandler server-statusorder deny,allowdeny from allallow from localhost, 127.0.0.1# Установите здесь имя вашего домена# allow from .your_domain.com</Location># Разрешает доступ к файлам документации для локальной машины.Alias /doc /usr/share/doc<Directory /usr/share/dooorder deny,allowdeny from allallow from localhost, 127.0.0.1# allow from .your_domain .
comOptions Indexes FollowSymLinks</Directory>#Конфигурация сервера# Тип сервера: inetd или standalone.ServerType standalone# Если вы используете тип inetd, перейдите к директиве "ServerAdmin"######Директива Port - только для standalone-сервера.Если вы хотите запустить сервер Apache с использованием этогоили любого другого порта, номер которого меньше 1024,вы должны обладать правами суперпользователя. Нодаже если у вас нет таких прав, вы можете запустить сервердля работы с портом, номер которого превышает значение 1024.306Сервер Apachet Обычно используется# номер 8080 или 8000.Port 80t#t##iСервер Apache ведет журнал доступа других компьютеров.Если вы включите данную опцию, то в журнал будет записанодоменное имя компьютера-клиента.
Если эта опция выключена,то в журнал будет записан IP-адрес клиента. Включение даннойопции замедляет работу сервера, так как ему требуетсядополнительное время на ожидание ответа от сервера DNS.HostnameLookups off#•I##I###Директивы User и Group определяют идентификаторы пользователяи группы.Данные идентификаторы присваиваются серверу, если он запущен вавтономном режиме. Можно использовать как имена пользователей,так и их числовые эквиваленты - UID. По умолчанию используетсяимя пользователя nobody или apache.
Из соображений безопасностине рекомендуется изменять это значение и присваивать имяреального пользователя.User apacheGroup apache# Директива ServerAdmin задает электронный адрес вебмастера вашего# Web-узла. В случае возникновения ошибок именно по этому адресу# будет отправлено сообщение.ServerAdmin root@localhost# В директиве ServerRoot указывается местонахождение файлов# конфигурации сервера Apache.# По умолчанию используется каталог /etc/httpd.ServerRoot /etc/httpd##I#Данная директива используется для компьютеров, которые имеютнесколько IP-адресов. Обычно данная директива используетсядля конфигурирования виртуальных хостов.BindAddress *# Прослушивать порт 80Listen 80####Директивы ErrorLog и TransferLog определяют расположениежурналов сервера Apache. Обычно используется каталог/etc/httpd/logs, который является ссылкой на каталог/var/log/httpd или на любой другой.307Сервер ApacheErrorLog logs/error_log####LogLevel: устанавливает уровень протоколирования.Протоколируются предупреждающие сообщения сервера (warn)и ошибки.
Если вы хотите протоколировать только ошибки,установите errorLogLevel warn# Определяет формат файлов протокола, то есть информация,# которая будет протоколироваться. Обычно их не нужно изменять.LogFormat "%h %1 %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{UserAgent}i\"" combinedLogFormat "%h %1 %u %t \"%r\" %>s %b" commonLogFormat "%(Referer}i -> %U" refererLogFormat "%{User-agent}i" agent##########Можно определить тип протоколаЕсли вы хотите протоколировать общую информациюCustomLog logs/access_log commonЕсли вы хотите протоколировать refererCustomLog logs/referer_log refererЕсли вы хотите протоколировать название пользовательскихагентов (браузеров)CustomLog logs/agent_log agentПо умолчанию используется комбинированный тип протоколирования,то есть будет протоколироваться вся информацияCustomLog logs/access_log combined# С помощью директивы PidFile указывается имя файла,# в котором исходный процесс сервера будет регистрироваться.PidFile /var/run/httpd.pid# ScoreBoardFile: Этот файл используется для сохранения внутренней# информации процесса сервера.ScoreBoardFile /etc/httpd/httpd.Scoreboard# Директива LockFile определяет файл блокировки, который# используется сервером.
Сервер должен быть скомпилирован с опцией# USE_FCNTL_SERIALIZED_ACCEPT или# USE_FLOCK_SERIALIZED_ACCEPT. Файл блокировки должен бытьf сохранен НА ЛОКАЛЬНОМ ДИСКЕ.#LockFile /etc/ittpd/httpd.lockI Директива ServerName позволяет вам установить имя узла вашего# сервера, которое будет использоваться клиентами,308Сервер Apache# то есть установить "www" вместо реального именисервера.# Имя, которое вы укажете, должно быть указано в сервере DNS# вашего домена.ServerName new.host.name# Директива UseCanonicalName появилась в версии Apache 1.3.# Она разрешает использовать каноническое имя для сервера узла.UseCanonicalName on# Данная директива позволяет прокси-серверу, например SQUID,# не кэшировать документы, которые не генерируются автоматически,# то есть в процессе выполнения различных сценариев.CacheNegotiatedDocs###IДиректива Timeout задает промежуток времени в секундах,в течение которого сервер продолжает попытки возобновленияприостановленной передачи данных.
Значение директивы Timeoutраспространяется не только на передачу, но и на прием данных.Timeout 300I Директива KeepAlive разрешает постоянные соединения,I то есть такие соединения, в которых производится болееI одного запроса за один раз.KeepAlive off# MaxKeepAliveRequests: Максимальное количество запросов,# разрешенное в течение постоянного соединения. Установите Оtt для снятия ограничения. Для повышения производительности# рекомендуется установить это число сравнительно большим.MaxKeepAliveRequests 100I Директива KeepAliveTimeout# соединения.определяет таймаут для постоянногоKeepAliveTimeout 15# Минимальное и максимальное число серверов в пулеMinSpareServers 8MaxSpareServers 20t Количество серверов для запускаStartServers 10•309Сервер Apache# Ограничивает общее количество клиентов.
Когда это число будет# превышено,новые клиенты получат отказ, поэтому это число# не должно быть слишком маленьким.MaxClients 150# После обработки определенного количества запросов, указанного# в директиве MaxRequestsPerChild, копия сервера завершается,# а вместо нее запускается новая.MaxRequestsPerChild 500# Директивы конфигурации прокси-сервера# ProxyRequests On# Для включения кэширования, раскомментируйте строки ниже:#######CacheRoot /var/cache/httpdCacheSize 5CacheGcInterval 4CacheMaxExpire 24CacheLastModifiedFactor 0.1CacheDefaultExpire 1NoCache a_domain.com another_domain.edu joes.garage_sale.com############################!######!# Настройки производительности SGI###f ########!#######! ############«##### Для использования этой функции, раскомментируйте модуль# mod_mmap_static в разделе описания модулей.<IfModule mod_mmap_static.c>QSC on</IfModule># Если вы хотите использовать буферизированное протоколирование,# раскомментируйте модуль mod_log_config_buffered в разделе# описания модулей.#########Для использования карты памяти, раскомментируйте эту строку:mmapfile /var/www/html/file_to_map_in_memoryЕсли вы хотите настроить процессы потомки, пожалуйста,прочитайте документацию на вашем сервереhttp://localhost/manual/misс/perf-mja.html.Эта страница объясняет как привязать определенный IP-адресили порт к flpVroMy процессору.SingleListen On370Сервер Apache#tt###tt############################# Виртуальные серверы ##################f##########t####«### Поддержка модуля perlt Замечание: не удаляйте расположенные далее строки, иначе это может# разрушить вашу конфигурацию.<IfDefine PERLPROXIED>ProxyPass'/perl/ http://127.О.О.1:8200/ProxyPassReverse /perl/ h t t p : / / 1 2 7 .