1.Установка Apache
1 |
# apt-get install apache2 |
2.Установка модуля libapache2-mpm-itk
1 |
# apt-get install libapache2-mpm-itk |
3.Включение модуля mpm-itk
1 |
# a2enmod mpm_itk |
4.Настройка виртуального хоста Apache
1 |
# nano /etc/apache2/sites-enabled/000-default.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<VirtualHost *:80> ServerName mydomain.com ServerAlias www.mydomain.com DocumentRoot /var/www/html <Directory "/var/www/html"> AllowOverride All Options -Indexes +FollowSymLinks </Directory> <IfModule mpm_itk_module> AssignUserId www-data www-data </IfModule> ErrorLog /var/log/apache2/error.log CustomLog /var/log/apache2/access.log combined </VirtualHost> |
5.Перезагрузка Apache и проверка подключенных модулей
1 |
# systemctl restart apache2 |
Проверка подключенных модулей
1 |
# apachectl -t -D DUMP_MODULES | grep mpm |
1 2 |
mpm_itk_module (shared) mpm_prefork_module (shared) |
Либо
1 |
# a2query -m | grep mpm |
1 2 |
mpm_itk (enabled by maintainer script) mpm_prefork (enabled by maintainer script) |
Просмотр типа MPM
1 |
# a2query -M |
1 |
Prefork |
Здесь подключается модуль mpm-itk
1 |
# nano /etc/apache2/mods-enabled/mpm_itk.load |
1 2 |
# Depends: mpm_prefork LoadModule mpm_itk_module /usr/lib/apache2/modules/mpm_itk.so |
Настройка параметров mpm Prefork
1 |
# nano /etc/apache2/mods-enabled/mpm_prefork.conf |
1 2 3 4 5 6 7 |
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 4096 </IfModule> |
Немного безопасности
1 |
# nano /etc/apache2/conf-available/security.conf |
1 2 |
ServerTokens Prod ServerSignature Off |
Просмотр статуса сервера Apache
Если необходимо, подключаем status и info-модули и настраиваем доступ к просмотру статистики/информации
1 |
# a2enmod status |
1 |
# nano /etc/apache2/mods-enabled/status.conf |
1 2 3 4 5 6 |
<Location /server-status> SetHandler server-status Require local Require ip <my-IP-address> </Location> ExtendedStatus On |
1 |
# a2enmod info |
1 |
# nano /etc/apache2/mods-enabled/info.conf |
1 2 3 4 5 |
<Location /server-info> SetHandler server-info Require local Require ip <my-IP-address> </Location> |
Включение дополнительных модулей(при необходимости)
1 |
# a2enmod rewrite |
1 |
# a2enmod headers |
1 |
# a2enmod include |
1 |
# apache2ctl configtest && systemctl reload apache2 |
Увеличение числа открытых файлов для пользователя, под которым работает WEB-сервер
1 |
# nano /etc/security/limits.d/apache.conf |
1 |
www-data - nofile 8192 |
1 |
# su www-data -s /bin/bash -c 'ulimit -n' |
1 |
8192 |
Просмотр кол-ва файлов используемых пользователем www-data
1 |
# lsof -u www-data | wc -l |
1 |
949 |
Оптимизация Apache
1 |
# nano /etc/apache2/apache2.conf |
Использовать постоянные соединения(включаем Keepalive)
1 2 3 4 |
KeepAlive On KeepAliveTimeout 10 # Отключить запросы к DNS в Apache HostnameLookups Off |
Включение сжатия
1 |
# a2enmod deflate |
Добавить в .htaccess
1 2 3 4 5 6 7 8 9 |
AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript |
Проверка поддержки сжатия
http://highloadtools.com/gzip
Источник:
https://dyrik.ru/linux/ustanovka-apache2-mpm-itk-v-ubuntu-16-04.html
https://ruhighload.com/index.php/2009/05/27/%d0%be%d0%bf%d1%82%d0%b8%d0%bc%d0%b8%d0%b7%d0%b0%d1%86%d0%b8%d1%8f-%d0%bf%d1%80%d0%be%d0%b8%d0%b7%d0%b2%d0%be%d0%b4%d0%b8%d1%82%d0%b5%d0%bb%d1%8c%d0%bd%d0%be%d1%81%d1%82%d0%b8-apache/
http://www.monitis.com/blog/25-apache-performance-tuning-tips/
https://www.digitalocean.com/community/tutorials/how-to-optimize-apache-web-server-performance