- Основы Apache (httpd)
- Базовая настройка сервера Apache
- Установка необходимых пакетов
- Определение основного файла конфигурации
- Создание контента веб-сервера
- Понимание файлов конфигурации Apache
- Создание виртуальных хостов Apache
- Linux usr sbin httpd
- Конфигурация файла «/etc/logrotate.d/apache»
- Оптимизация Apache
Основы Apache (httpd)
Базовая настройка сервера Apache
Установка необходимых пакетов
Сервер Apache предоставляется через несколько различных пакетов. Базовый пакет — httpd; этот пакет содержит все, что нужно для рабочего, но базового веб-сервера. Также есть несколько дополнительных пакетов. Для полного обзора пакетов вы можете использовать команду yum search http или использовать yum install httpd для установки базового пакета.
Обратите внимание, что команда yum search http выдает много пакетов. Это связано с тем, что веб-сервер Apache является модульным, а различные модули предоставляются через дополнительные пакеты yum.
Вместо использования отдельных пакетов вы также можете использовать yum groups. Команда yum groups list предоставляет обзор всех доступных групп yum, а yum group Basic Web Server предоставляет все необходимое для установки веб-сервера Apache и все необходимые зависимости. Чтобы выполнить установку Apache используйте yum groups install «Basic Web Server».
Определение основного файла конфигурации
Конфигурация веб-сервера Apache проходит через различные файлы конфигурации. Основной файл конфигурации Apache — /etc/httpd/conf/httpd.conf. В этом файле указано много параметров. Самый важный параметр, который нужно понять для настройки базового веб-сервера, — это параметр DocumentRoot. Этот параметр указывает местоположение по умолчанию, где веб-сервер Apache ищет контент.
Другим важным параметром конфигурации является ServerRoot. Он определяет каталог по умолчанию, где Apache будет искать свои файлы конфигурации. По умолчанию для этой цели используется каталог /etc/httpd, но могут использоваться и другие каталоги.
Вы заметите, что в httpd.conf упоминаются многие другие файлы конфигурации. Использование дополнительных файлов конфигурации позволяет приложениям легко устанавливать snap-in файлы, которые будут включены сервером Apache из пакетов RPM. Все имена этих файлов конфигурации относятся к ServerRoot в /etc/httpd.
В листинге 1 показана часть содержимого файла конфигурации httpd.conf.
Создание контента веб-сервера
После определения DocumentRoot веб-сервера вы знаете все, что нужно знать для настройки базового веб-сервера. По умолчанию веб-сервер Apache ищет файл с именем index.html и представляет содержимое этого документа клиентам, использующим браузер для доступа к веб-серверу. Достаточно настроить этот файл с очень простым содержанием; подойдет только строка типа «Добро пожаловать на мой веб-сервер».
Чтобы протестировать веб-сервер, вы можете запустить браузер. Браузер Firefox установлен по умолчанию во всех графических установках RHEL / CentOS. Если ваш сервер не поддерживает графический интерфейс, используйте yum install elinks для установки текстового браузера elinks.
Этот браузер не позволяет загружать сложные веб-страницы, но он позволяет вам проверить работу веб-сервера. Ниже на скриншоте показано, как выглядит интерфейс elinks.
В упражнении 1 вы узнаете, как настроить базовый веб-сервер.
Упражнение 1. Настройка базового веб-сервера
В этом упражнении вы узнаете, как настроить базовый веб-сервер Apache.
1. Выполните yum groups install «Basic Web Server». Это установит пакет httpd, а также некоторые из наиболее часто используемых дополнительных пакетов.
2. Откройте главный файл конфигурации Apache в редакторе и найдите строку, которая начинается с DocumentRoot. DocumentRoot определяет местоположение, где сервер Apache будет искать контент, который он будет обслуживать. Убедитесь, что он установлен в /var/www/html.
3. В каталоге /var/www/html создайте файл с именем index.html. В этом файле введите «Добро пожаловать на мой веб-сервер».
4. Чтобы запустить и включить веб-сервер, выполните systemctl start httpd; systemctl enable httpd. Команда запускает веб-сервер и гарантирует, что он будет запускаться автоматически после перезапуска сервера. Выполните systemctl status httpd, чтобы убедиться, что веб-сервер запущен и работает. В листинге 2 вы можете увидеть, как должен выглядеть результат этой команды.
5. Выполните yum install elinks, чтобы установить текстовый браузер elinks. Введите elinks http://localhost, чтобы подключиться к веб-серверу и убедиться, что он работает.
Понимание файлов конфигурации Apache
При установке веб-сервера Apache по умолчанию создается довольно сложное дерево конфигурации в каталоге /etc/httpd. В листинге 3 показано содержимое этого каталога по умолчанию. Обратите внимание, что содержимое этого каталога может отличаться на вашем сервере, если установлены дополнительный пакеты. Apache является модульным, и после установки дополнительных модулей Apache здесь могут быть установлены другие файлы конфигурации.
Листинг 3
Первое, что вы заметите, это наличие трех символических ссылок на журналы, модули и каталог выполнения. Они созданы, чтобы позволить Apache запускаться в среде chroot.
Среда chroot предоставляет поддельный корневой каталог. Это каталог в файловой системе, представленный в качестве корневого каталога для процесса, который выполняется в среде chroot. Это сделано по соображениям безопасности: процессы, работающие в среде chroot, могут обращаться к файлам только в этой среде chroot, что снижает риск возникновения инцидентов безопасности, когда злоумышленникам удается получить оболочку входа в систему с использованием идентификатора веб-сервера и попробовать пройти через файловюя систему для выполнения несанкционированных действий.
Основные файлы конфигурации для веб-сервера Apache находятся в каталоге /etc/httpd/conf. Для начала, есть файл httpd.conf, который содержит наиболее важные параметры конфигурации. Кроме того, есть файл с именем magic. Этот файл используется браузером для интерпретации того, каким должно быть содержимое веб-сервера. Это гарантирует, что содержимое веб-сервера отображается правильно в разных браузерах.
Каталог /etc/httpd/conf.d содержит файлы, которые включены в конфигурацию Apache. Это делается с помощью строки Include conf.modules.d/*.conf в файле httpd.conf.
Этот каталог может использоваться RPM, которые включают snap-in файлы оснастки Apache. Как и в случае с ServerRoot, этот подход позволяет добавлять файлы конфигурации, которые определяют различные веб-страницы, без изменения содержимого файла /etc/httpd/conf/httpd.conf.
Последним каталогом конфигурации является /etc/httpd/conf.modules.d. Apache — это модульный веб-сервер. Поэтому функциональность веб-сервера Apache можно легко расширить, добавив дополнительные модули, которые обеспечивают множество различных функций.
Если используются модули, они могут использовать свои собственные файлы конфигурации, специфичные для модулей, которые будут помещены в каталог /etc/httpd/conf.modules.d. Опять же, цель этого подхода состоит в том, чтобы сохранить конфигурацию в /etc/httpd/conf.d/httpd.conf настолько чистой, насколько это возможно, и убедиться, что конкретная конфигурация модуля не перезаписывается при обновлении универсальной конфигурации Apache.
Создание виртуальных хостов Apache
Многие компании размещают более одного сайта. К счастью, нет необходимости устанавливать новый сервер Apache для каждого веб-сайта, который вы хотите запустить. Apache можно настроить для работы с виртуальными хостами. Виртуальный хост — это отдельный файл конфигурации Apache, созданный для уникального имени хоста.
При работе с виртуальными хостами процедура доступа к хосту примерно такая:
- Клиент начинает сеанс с конкретным виртуальным хостом, обычно запуская браузер и вводя URL-адрес веб-сайта, который клиент хочет использовать.
- DNS помогает определить IP-адрес виртуального хоста, который является IP-адресом сервера Apache, на котором могут размещаться разные виртуальные хосты.
- Процесс Apache получает запросы на все виртуальные хосты, которые он размещает.
- Процесс Apache считывает заголовок HTTP, чтобы проанализировать, на какой виртуальный хост необходимо отправить этот запрос.
- Apache читает конкретный файл конфигурации виртуального хоста, чтобы определить, какой корневой каталог документов используется этим конкретным виртуальным хостом.
- Запрос перенаправляется в соответствующий файл содержимого в корне этого конкретного документа.
При работе с виртуальными хостами необходимо помнить несколько вещей:
■ Если ваш сервер Apache настроен для виртуальных хостов, все серверы, на которых он размещается, должны обрабатываться виртуальными хостами. Чтобы создать все записи перехвата для всех HTTP-запросов, которые направлены на этот хост, но у которых нет определенного файла виртуального хоста, вы можете создать виртуальный хост _default_: 80.
■ Виртуальный хостинг на основе имен является наиболее распространенным решением. В этом решении виртуальные хосты используют разные имена, но один и тот же IP-адрес.
■ Виртуальные хосты на основе IP менее распространены, но необходимы, если имя веб-сервера должно быть преобразовано в уникальный IP-адрес. Виртуальные хосты на основе IP требуют нескольких IP-адресов на одном сервере и являются общими в конфигурации, где сервер Apache использует TLS для защиты соединений.
Упражнение 2. Установка виртуальных хостов Apache
В этом упражнении вы создадите два виртуальных хоста. Чтобы помочь вам настроить виртуальные хосты, вы сначала настраиваете разрешение имен, после чего вы создаете конфигурацию виртуальных хостов.
1. На сервере server1 и server2 откройте файл /etc/hosts с помощью редактора и добавьте две строки, которые позволяют сопоставить имена виртуальных хостов, которые вы собираетесь создать, с IP-адресом сервера:
2. На сервере server1 добавьте следующее в файл /etc/httpd/conf/httpd.conf. (Вы можете оставить все остальные настройки как есть.)
3. Там же на сервере server1 создайте файл конфигурации с именем account.example.com.conf в каталоге /etc/httpd/conf.d.
Добавьте в этот файл:
4. Закройте файл конфигурации и выполните:
5. В каталоге account.example.com, который вы указали выше в строке DocumentRoot, создайте файл с именем index.html и убедитесь, что в нём написано «Добро пожаловать в account».
6. Временно выключите SELinux командой setenforce 0.
7. Выполните systemctl restart httpd для перезапуска веб-сервера Apache.
8. Выполните elinks http://account.example.com. Теперь вы должны увидеть страницу приветствия account. (Возможно, вам придется установить elinks, используя yum install -y elinks.)
9. Вернувшись в терминал, скопируйте файл /etc/httpd/conf.d/account.example.com.conf в файл с именем /etc/httpd/conf.d/sales.example.com.conf.
10. Откройте файл sales.example.com.conf в vi и выполните команду :%s/account/sales/g. Этой командой вы сделаете замену текста account на sales, который встречается во всём файле.
11. Создайте каталог /www/docs/sales.example.com и создайте в нем файл index.html, содержащий текст «Добро пожаловать на сервер sales».
12. Перезапустите httpd и убедитесь, что account и sales доступны.
Источник
Linux usr sbin httpd
Основная выгода от использования chroot — это ограничение части файловой системы, которую демон может видеть как корневой каталог. Дополнительно, так как эта часть файловой системы нужна только для поддержки Apache, то количество программ доступное на ней чрезвычайно ограничено. Наиболее важно то, что здесь не нужно иметь setuid-root программ, которые можно использовать для получения root доступа и взлома chroot ограничений.
Chrooting apache — это не простая задача. Перед ее решением мы рассмотрим некоторые «за» и «против», чтобы вы решили нужно ли вам это.
За:
- Если apache будет взломан, то атакующий не получит доступ к элементам файловой системы.
- Плохо написанные CGI скрипты, которые могут позволить кому-нибудь получить доступ к вашему серверу не будут работать.
Против:
- Существуют дополнительные библиотеки, которые вы должны иметь в chroot окружении, чтобы Apache работал корректно.
- Если вы используете любые Perl/CGI возможности в Apache, вам нужно будетскопировать необходимые двоичные файлы, Perl библиотеки и файлы в предназначенное место chroot пространства. Тоже самое относится и к SSL, PHP, LDAP, PostgresSQL и другим программам третьих лиц.
chroot конфигурация приведенная ниже полагает, что вы компилировали ваш сервер Apache со внешней программой mod_ssl. Различия в том, что вы компилировали с вашим веб сервером Apache постоянно находится в библиотеках и двоичных файлах, которые вы должны копировать в chroot каталог.
Помните, что если вы компилировали Apache с поддержкой mod_perl, вы должны скопировать все связанные двоичные файлы и Perl библиотеки в chroot каталог. Perl находится в «/usr/lib/perl5» и в случае использования возможностей Perl, копируйте каталог Perl в «/chroot/httpd/usr/lib/perl5/». Не забудьте перед копированием создать каталог «/chroot/httpd/usr/lib/perl5» в вашей chroot структуре.
Ниже приводятся все необходимые шаги для запуска веб сервера Apache в chroot окружении:
Шаг 1
Мы должны определить разделяемые библиотеки от которых зависит httpd. Их надо будет позже скопировать в chroot каталог.
Для поиска разделяемых библиотек от которых зависит httpd выполните следующую команду:
[root@deep /]# ldd /usr/sbin/httpd
libpam.so.0 => /lib/libpam.so.0 (0x40016000)
libm.so.6 => /lib/libm.so.6 (0x4001f000)
libdl.so.2 => /lib/libdl.so.2 (0x4003b000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4003e000)
libnsl.so.1 => /lib/libnsl.so.1 (0x4006b000)
libresolv.so.2 => /lib/libresolv.so.2 (0x40081000)
libdb.so.3 => /lib/libdb.so.3 (0x40090000)
libc.so.6 => /lib/libc.so.6 (0x400cb000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Сделайте заметки об этих файлах; они потребуются нам позже.
Шаг 2
Создайте новый UID и GID, если этой же не сделано, необходимые для запуска Apache httpd. Это важно, потому что запуск из под root ликвидирует преимущества chroot окружения, а использование UID, которые уже существуют на системе (например, nobody) может дать доступ сервису к другим ресурсам. Представьте себе, что веб сервер запущен из под пользователя nobody, или любого другого используемого UID/GID и был взломан. Взломщик получит доступ из chroot к любым другим процессам запущенным как. Здесь приведены типичные UID и GID. Проверьте файлы «/etc/passwd» и «/etc/group» файлы на наличие свободных UID/GID. В нашей конфигурации мы используем значение «80» и UID/GID «www».
[root@deep /]# useradd -c «Apache Server» -u 80 -s /bin/false -r -d /home/httpd www 2>/dev/null || :
Вышеприведенная команда создаст группу «www» с числовым GID равном 80, и пользователя «www» с числовым номером UID равном 80.
Шаг 3
Установим chroot окружение. Первое, мы должны создать chroot структуру для Apache. Мы используем «/chroot/httpd» как chroot каталог для Apache. «/chroot/httpd» — это только каталог на отдельном разделе, где мы решили разместить apache для большей безопасности.
[root@deep /]# /etc/rc.d/init.d/httpd stop (только если Apache уже инсталлирован и запущен на вашей системе). Далее мы создаем остальные каталоги:
[root@deep /]# mkdir /chroot/httpd/dev
[root@deep /]# mkdir /chroot/httpd/lib
[root@deep /]# mkdir /chroot/httpd/etc
[root@deep /]# mkdir -p /chroot/httpd/usr/sbin
[root@deep /]# mkdir -p /chroot/httpd/var/run
[root@deep /]# mkdir -p /chroot/httpd/var/log/httpd
[root@deep /]# chmod 750 /chroot/httpd/var/log/httpd/
[root@deep /]# mkdir -p /chroot/httpd/home/httpd
Копируйте основной конфигурационный каталог, конфигурационные файлы, каталог cgi-bin, root каталог и программу httpd в chroot окружение:
[root@deep /]# cp -r /etc/httpd /chroot/httpd/etc/
[root@deep /]# cp -r /home/httpd/cgi-bin /chroot/httpd/home/httpd/
[root@deep /]# cp -r /home/httpd/your-DocumentRoot /chroot/httpd/home/httpd/
[root@deep /]# mknod /chroot/httpd/dev/null c 1 3
[root@deep /]# chmod 666 /chroot/httpd/dev/null
[root@deep /]# cp /usr/sbin/httpd /chroot/httpd/usr/sbin/
Нам нужны каталоги «/chroot/httpd/etc», «/chroot/httpd/dev», «/chroot/httpd/lib», «/chroot/httpd/usr/sbin», «/chroot/httpd/var/run», «/chroot/httpd/home/httpd» и «/chroot/httpd/var/log/httpd», потому что «/» считается от точки chroot.
Шаг 4
Если вы скомпилировали Apache с поддержкой SSL, вы должны скопировать элементы каталога «/etc/ssl», который содержит все приватные и публичные ключи в chroot окружение.
[root@deep /]# cp -r /etc/ssl /chroot/httpd/etc/ (требуется только если включена поддержка mod_ssl).
[root@deep /]# chmod 600 /chroot/httpd/etc/ssl/certs/ca.crt (требуется только если включена поддержка mod_ssl).
[root@deep /]# chmod 600 /chroot/httpd//etc/ssl/certs/server.crt (требуется только если включена поддержка mod_ssl).
[root@deep /]# chmod 600 /chroot/httpd/etc/ssl/private/ca.key (требуется только если включена поддержка mod_ssl).
[root@deep /]# chmod 600 /chroot/httpd/etc/ssl/private/server.key (требуется только если включена поддержка mod_ssl).
Так как мы компилировали apache с использованием разделяемых библиотек, нам нужно инсталлировать их в структуру chroot каталога. Используйте ldd /chroot/httpd/usr/sbin/httpd для поиска требуемых библиотек. Вывод этой команды будет выглядеть примерно так:
libpam.so.0 => /lib/libpam.so.0 (0x40016000)
libm.so.6 => /lib/libm.so.6 (0x4001f000)
libdl.so.2 => /lib/libdl.so.2 (0x4003b000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x4003e000)
libnsl.so.1 => /lib/libnsl.so.1 (0x4006b000)
libresolv.so.2 => /lib/libresolv.so.2 (0x40081000)
libdb.so.3 => /lib/libdb.so.3 (0x40090000)
libc.so.6 => /lib/libc.so.6 (0x400cb000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
Копируйте разделяемые библиотеки определенные выше:
[root@deep /]# cp /lib/libpam.so.0 /chroot/httpd/lib/
[root@deep /]# cp /lib/libm.so.6 /chroot/httpd/lib/
[root@deep /]# cp /lib/libdl.so.2 /chroot/httpd/lib/
[root@deep /]# cp /lib/libcrypt.so.1 /chroot/httpd/lib/
[root@deep /]# cp /lib/libnsl* /chroot/httpd/lib/
[root@deep /]# cp /lib/libresolv* /chroot/httpd/lib/
[root@deep /]# cp /lib/libdb.so.3 /chroot/httpd/lib/
[root@deep /]# cp /lib/libc.so.6 /chroot/httpd/lib/
[root@deep /]# cp /lib/ld-linux.so.2 /chroot/httpd/lib/
Вам также нужны следующие дополнительные библиотеки для некоторых сетевых функций, подобных резолвингу:
[root@deep /]# cp /lib/libnss_compat* /chroot/httpd/lib/
[root@deep /]# cp /lib/libnss_dns* /chroot/httpd/lib/
[root@deep /]# cp /lib/libnss_files* /chroot/httpd/lib/
Мы должны скопировать passwd и group файлы в «/chroot/httpd/etc». Концепция их использования такая же как и в ftpd. Затем, мы удаляем все элементы из этих файлов, за исключением пользователя и группы под которыми запускается apache.
[root@deep /]# cp /etc/passwd /chroot/httpd/etc/
[root@deep /]# cp /etc/group /chroot/httpd/etc/
Редактируйте файл passwd (vi /chroot/httpd/etc/passwd) и удалите все элементы, кроме пользователя под которым мы запускаем apache (в нашем случае это «www»):
www:x:80:80::/home/www:/bin/bash
Редактируйте файл group (vi /chroot/httpd/etc/group) и удалите все элементы, кроме группы под которой запускается apache (в нашем случае это «www»):
www:x:80:
Вам потребуются файлы «/etc/resolv.conf», «/etc/nsswitch.conf» и «/etc/hosts» в вашем chroot окружении.
[root@deep /]# cp /etc/resolv.conf /chroot/httpd/etc/
[root@deep /]# cp /etc/hosts /chroot/httpd/etc/
[root@deep /]# cp /etc/nsswitch.conf /chroot/httpd/etc/
Сейчас на некоторые файлы в chroot окружении мы установим бит «постоянства» для лучшей безопасности.
Установите бит «постоянства» на файл «passwd»:
[root@deep /]# cd /chroot/httpd/etc/
[root@deep /]# chattr +i passwd
Установите бит «постоянства» на файл «group»:
[root@deep /]# cd /chroot/httpd/etc/
[root@deep /]# chattr +i group
Установите бит «постоянства» на файл «httpd.conf»:
[root@deep /]# cd /chroot/httpd/etc/httpd/conf/
[root@deep /]# chattr +i httpd.conf
Установите бит «постоянства» на файл «resolv.conf»:
[root@deep /]# cd /chroot/httpd/etc/
[root@deep /]# chattr +i resolv.conf
Установите бит «постоянства» на файл «hosts»:
[root@deep /]# cd /chroot/httpd/etc/
[root@deep /]# chattr +i hosts
Установите бит «постоянства» на файл «nsswitch.conf»:
[root@deep /]# cd /chroot/httpd/etc/
[root@deep /]# chattr +i nsswitch.conf
Копируйте файл «localtime» в chroot так, чтобы регистрационные входы были правильно откорректированы для вашей локальной timezone:
[root@deep /]# cp /etc/localtime /chroot/httpd/etc/
Удалите не нужные Apache файлы и каталоги:
[root@deep /]# rm -rf /var/log/httpd/
[root@deep /]# rm -rf /etc/httpd/
[root@deep /]# rm -rf /home/httpd/
[root@deep /]# rm -f /usr/sbin/httpd
Мы можем спокойно удалить все вышеназванные файлы и каталоги , так как они сейчас находятся в нашем chroot каталоге.
Шаг 11.
Сказать syslogd о новом chroot сервисе. Нормально, процессы обращаются к syslogd через «/dev/log». В chroot окружении это невозможно, поэтому syslogd должен слушать «/chroot/httpd/dev/log». Чтобы сделать это, редактируйте скрипт запуска syslog для определения дополнительного места, которое необходимо слушать.
Редактируйте скрипт syslog (vi /etc/rc.d/init.d/syslog) и измените строку:
daemon syslogd -m 0
на:
daemon syslogd -m 0 -a /chroot/httpd/dev/log
Шаг 12
По умолчанию скрипт httpd запускает демон «httpd» вне chroot окружения. Мы должны изменить это, для этого редактируйте скрипт httpd (vi /etc/rc.d/init.d/httpd) и измените следующие строки:
daemon httpd
на:
/usr/sbin/chroot /chroot/httpd/ /usr/sbin/httpd -DSSL
rm -f /var/run/httpd.pid
на:
rm -f /chroot/httpd/var/run/httpd.pid
Шаг 13
В заключении, вы должны проверить новую chroot конфигурацию вашего веб сервера Apache.
Первое, перезагрузите демон syslogd: Затем, запустите Apache в chroot окружении: Если вы не получили каких-либо ошибок дайте команду:
[root@deep /]# ps ax | grep httpd
14373 ? S 0:00 httpd -DSSL
14376 ? S 0:00 httpd -DSSL
14377 ? S 0:00 httpd -DSSL
14378 ? S 0:00 httpd -DSSL
14379 ? S 0:00 httpd -DSSL
14380 ? S 0:00 httpd -DSSL
14381 ? S 0:00 httpd -DSSL
14382 ? S 0:00 httpd -DSSL
14383 ? S 0:00 httpd -DSSL
14384 ? S 0:00 httpd -DSSL
14385 ? S 0:00 httpd -DSSL
14386 ? S 0:00 httpd -DSSL
14387 ? S 0:00 httpd -DSSL
14388 ? S 0:00 httpd -DSSL
14389 ? S 0:00 httpd -DSSL
14390 ? S 0:00 httpd -DSSL
14391 ? S 0:00 httpd -DSSL
14397 ? S 0:00 httpd -DSSL
14476 ? S 0:00 httpd -DSSL
14477 ? S 0:00 httpd -DSSL
14478 ? S 0:00 httpd -DSSL
Если это так, то проверьте действительно процесс сменил корень (chroot):
[root@deep /]# ls -la /proc/14373/root/
Вы должны увидеть:
dev
etc
home
lib
usr
var
где 14373 PID одного из процессов httpd.
Поздравляем!
Так же как описано выше, если вы используете Perl, вам нужно скопировать или создать жесткие ссылки любых системных библиотек, perl библиотек «/usr/lib/perl5» и двоичных файлов в chroot структуре. Также надо действовать для SSL, PHP, LDAP, PostgreSQL и других программ.
Конфигурация файла «/etc/logrotate.d/apache»
Создайте файл apache (touch /etc/logrotate.d/apache) и добавьте в него:
Оптимизация Apache
Существует специальный модуль, поставляемый с дистрибутивом Apache, называемый «mod_mmap_static», который может быть использован для улучшения производительности вашего веб сервера. Этот модуль работает, отображая статически настроенный список часто запрашиваемых, но редко модифицируемых файлов из RootDirectory. Так, если файл выводимый Apache часто не изменяется, вы можете использовать этот модуль для отображения в памяти статического документа и увеличения скорости работы вашего веб сервера Apache.
Важно заметить, что модуль mod_mmap_static должен быть включен на этапе конфигурации и компиляции Apache. Если вы следовали за нашим описанием процесса конфигурации и компиляции, то это уже сделано в Apache (—add- module-../mod_mmap_static.c).
Шаг 1
Для отображения статических документов в памяти используйте следующую команду:
[root@deep /]# find /home/httpd/ona -type f -print | sed -e ‘s/.*/mmapfile &/’ > /etc/httpd/conf/mmap.conf
— это RootDirectory, или если быть более точным каталог из которого вы будете предоставлять ваши документы, а — это месторасположение файла «mmap.conf», который содержит статическое отображение в памяти всех документов из вашего RootDirectory.
Шаг 2
После того, как файл «mmap.conf» был создан в месте, которое мы отвели для хранения этого файла, мы должны включить его в файл «httpd.conf», чтобы использовать его возможности на сервере.
Редактируйте файл httpd.conf (vi /etc/httpd/conf/httpd.conf) и добавьте в него строки:
Include conf/mmap.conf
ЗАМЕЧАНИЕ. Смотрите документацию на Apache для большей инофрмации об использовании mod_mmap_static. Помните, что эта возможность должна использоваться, когда предоставляемые документы часто не изменяются.
Шаг 3
Перезагрузите веб сервер Apache, чтобы изменения вступили в силу: Атрибуты atime и noatime
Атрибуты atime и noatime могут быть использованы для небольшого увеличения производительности Apache. Смотрите главу 4 в этой книге, «Общая системная оптимизация » для большей информации по этом вопросу.
Источник