Безопасность и оптимизация Linux.Редакция для Red Hat

       

Конфигурация файла “/etc/httpd/conf/httpd.conf”


Файл “httpd.conf” – это основной конфигурационный файл для веб сервера Apache. Существует большое количество различных опций про которые вы должны прочитать в документации к Apache. Следующая конфигурация представляет из себя пример минимальной рабочей конфигурации для Apache, с поддержкой SSL. Также важно заметить, что мы комментируем только параметры связанные с безопасностью и оптимизацией, а все остальные оставляем для вашего изучения.

Редактируйте файл httpd.conf (vi /etc/httpd/conf/httpd.conf) и добавьте/измените:

### Секция 1: Глобальное окружение # ServerType standalone ServerRoot "/etc/httpd" PidFile /var/run/httpd.pid ResourceConfig /dev/null AccessConfig /dev/null Timeout 300 KeepAlive On MaxKeepAliveRequests 0 KeepAliveTimeout 15 MinSpareServers 16 MaxSpareServers 64 StartServers 16 MaxClients 512 MaxRequestsPerChild 100000

### Секция 2: 'Основная' конфигурация сервера # Port 80

<IfDefine SSL>

Listen 80 Listen 443 </IfDefine>

User www Group www ServerAdmin admin@openna.com ServerName www.openna.com DocumentRoot "/home/httpd/ona"

<Directory />

Options None AllowOverride None Order deny,allow Deny from all </Directory>

<Directory "/home/httpd/ona">

Options None AllowOverride None Order allow,deny Allow from all </Directory>

<Files .pl>

Options None AllowOverride None Order deny,allow Deny from all </Files>

<IfModule mod_dir.c>



DirectoryIndex index.htm index.html index.php index.php3 default.html index.cgi </IfModule>

#<IfModule mod_include.c>

#Include conf/mmap.conf #</IfModule>

UseCanonicalName On

<IfModule mod_mime.c>

TypesConfig /etc/httpd/conf/mime.types </IfModule>

DefaultType text/plain HostnameLookups Off ErrorLog /var/log/httpd/error_log LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined SetEnvIf Request_URI \.gif$ gif-image CustomLog /var/log/httpd/access_log combined env=!gif-image ServerSignature Off


<IfModule mod_alias.c>

ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/" <Directory "/home/httpd/cgi-bin">

AllowOverride None Options None Order allow,deny Allow from all </Directory>

</IfModule>

<IfModule mod_mime.c>

AddEncoding x-compress Z AddEncoding x-gzip gz tgz AddType application/x-tar .tgz </IfModule>

ErrorDocument 500 "The server made a boo boo. ErrorDocument 404 http://192.168.1.1/error.htm ErrorDocument 403 "Access Forbidden -- Go away.

<IfModule mod_setenvif.c>

BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4\.0" force-response-1.0 BrowserMatch "Java/1\.0" force-response-1.0 BrowserMatch "JDK/1\.0" force-response-1.0 </IfModule>

### Секция 3: Виртуальные хосты # <IfDefine SSL>

AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl </IfDefine>

<IfModule mod_ssl.c>

SSLPassPhraseDialog builtin SSLSessionCache dbm:/var/run/ssl_scache SSLSessionCacheTimeout 300

SSLMutex file:/var/run/ssl_mutex

SSLRandomSeed startup builtin SSLRandomSeed connect builtin

SSLLog /var/log/httpd/ssl_engine_log SSLLogLevel warn </IfModule>

<IfDefine SSL>

<VirtualHost _default_:443>

DocumentRoot "/home/httpd/ona" ServerName www.openna.com ServerAdmin admin@openna.com ErrorLog /var/log/httpd/error_log SSLEngine on SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

SSLCertificateFile /etc/ssl/certs/server.crt SSLCertificateKeyFile /etc/ssl/private/server.key SSLCACertificatePath /etc/ssl/certs SSLCACertificateFile /etc/ssl/certs/ca.crt SSLCARevocationPath /etc/ssl/crl SSLVerifyClient none SSLVerifyDepth 10

SSLOptions +ExportCertData +StrictRequire SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown SetEnvIf Request_URI \.gif$ gif-image CustomLog /var/log/httpd/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" env=!gif-image </VirtualHost>



</IfDefine>

Этот файл httpd.conf говорит следующее:

ServerType standalone

Опция “ServerType” определяет как Apache должен быть запущен. Вы можете запустить его из суперсервера inetd или как автономный демон. Для лучшей производительности и скорости рекомендуется запускать Apache как автономный демон.

ServerRoot "/etc/httpd"

Опция “ServerRoot” определяет каталог, являющийся корневым для сервера. По этому пути определяется месторасположения конфигурационных файлов.

PidFile /var/run/httpd.pid

Опция “PidFile” определяет месторасположение файла в котором будет хранится информация об id демона, когда он запущен. Эта опция требуется только если вы запускаете Apache в автономном режиме.

ResourceConfig /dev/null

Опция “ResourceConfig” определяет расположение старого файла “srm.conf”, который Apache читал после прочтения файла “httpd.conf”. Когда вы устанавливаете эту опцию в “/dev/null”, Apache позволит вам включить содержимое этого файла в файл “httpd.conf” и вы получите только один файл для конфигурирования.

AccessConfig /dev/null

Опция “AccessConfig” определяет расположение старого файла “access.conf”, который Apache читал после прочтения файла “srm.conf”. Когда вы устанавливаете эту опцию в “/dev/null”, Apache позволит вам включить содержимое этого файла в файл “httpd.conf” и вы получите только один файл для конфигурирования.

Timeout 300

Опция “Timeout” определяет время, которое Apache будет ждать до получения запросов GET, POST, PUT и ACK на передачу. Вы можете спокойно оставить значение этой опции как это принято по умолчанию.

KeepAlive On

Опция “KeepAlive”, если установлена в "On", определяет возможность установления постоянных соединений на этом веб сервере. Для лучшей производительности, рекомендуется установить этот параметр в “On,” и разрешить обработку более одного запроса на одно соединение.

MaxKeepAliveRequests 0

Опция “MaxKeepAliveRequests” определяет число запросов, которое может обработать сервер на одно соединение, если опция “KeepAlive” установлена в “On”. Когда значение равно 0, тогда может обрабатываться неограниченное число запросов. Для лучшей производительности, рекомендуется устанавливать этот параметр в 0.



KeepAliveTimeout 15

Опция “KeepAliveTimeout” определяет как долго, в секундах, Apache будет ждать поступления новых запросов до закрытия соединения. “15” секунд - хорошее среднее значение для производительности сервера.

MinSpareServers 16

Опция “MinSpareServers” определяет минимальное число неработающих дочерних процессов сервера, которые не обрабатывают запросы. Это важный настроечный параметр, влияющий на производительность веб сервера Apache. Значение “16” рекомендуется различными тестами на производительность в Интернет.

MaxSpareServers 64

Опция “MaxSpareServers” определяет максимальное число неработающих дочерних процессов сервера, которые не обрабатывают запросы. Это тоже важный настроечный параметр, влияющий на производительность веб сервера Apache. Значение “64” рекомендуется различными тестами на производительность в Интернет.

StartServers 16

Опция “StartServers” определяет число дочерних серверных процессов, которые будут созданы при запуске Apache. Это тоже важный настроечный параметр, влияющий на производительность веб сервера Apache. Значение “16” рекомендуется различными тестами на производительность в Интернет.

MaxClients 512

Опция “MaxClients” определяет число одновременных запросов, которые может обработать Apache. Это тоже важный настроечный параметр, влияющий на производительность веб сервера Apache. Значение “512” рекомендуется различными тестами на производительность в Интернет.

MaxRequestsPerChild 100000

Опция “MaxRequestsPerChild” определяет число запросов, которое индивидуальный дочерний серверный процесс может обработать, после чего автоматически умрет. Это тоже важный настроечный параметр, влияющий на производительность веб сервера Apache.

User www

Опция “User” определяет UID, под которым Apache будет запускаться. Очень важно создать нового пользователя, который имеет минимальные права доступа к системе и единственным его предназначением будет запуск демона веб сервера.

Group www

Опция “Group” определяет GID под которым Apache будет запускаться. Важно создать новую группу, которая имеет минимальные права доступа к системе и единственным ее предназначением будет запуск демона веб сервера.



DirectoryIndex index.htm index.html index.php index.php3 default.html index.cgi

Опция “DirectoryIndex” определяет файлы используемые Apache как заранее созданный HTML индекс каталога, если Apache не может найти индексные страницы по умолчанию, он будет рассматривать следующий элемент этого параметра. Для улучшения производительности вашего веб сервера, рекомендуется индексные страницы используемые на вашем сервере по умолчанию поместить в этом списке на первом месте.

Include conf/mmap.conf

Опция “Include” определяет расположение другого файла, который вы можете включить в ваш серверный конфигурационный файл (httpd.conf). В нашем случае, мы включаем файл “mmap.conf” находящийся в каталоге “/etc/httpd/conf”. Этот файл (“mmap.conf”) отображает файлы в памяти для более быстрого их предоставления. Смотрите секцию “Оптимизация Apache” для большей информации.

HostnameLookups Off

Опция “HostnameLookups”, если установлена в “Off”, определяет, что DNS lookups отключен. Рекомендуется устанавливать эту опцию в “Off” для сокращения времени сетевого трафика и улучшения производительности веб сервера Apache.


Содержание раздела