Вылазят различные косяки при настройке apache. В инете найти решения не получается. Прошу советов. И такой момент, прошу отвечать только тех кто по apache реально собаку съел, если ваши знания поверхностны, то лучше воздержитесь от ответов.
1. Что делать, чтобы уменьшить потребление оперативной памяти? Стоит ли отключать некоторые включённые по умолчанию модули и прописывать какие директивы в httpd.conf? Я отключил cgi_module и cgid_module, сайтов, требующих cgi, у меня всё равно нет. Но вот запускаю я htop и вижу, что у меня висят в памяти 5 процессов httpd, каждый из которых жрёт около 25000 оперативной памяти и 500M виртуальной и это при нулевой нагрузке. Зачем так? Мне казалось сколько клиентов подключены к серверу столько и процессов должно быть, ну ещё должны быть резервные процессы запущены, чтобы как только подключится новый клиент, чтобы сайт у него тут же грузился без ожидания пока запустится новый процесс. О мультипроцессинговых моделях слово, заметил что по умолчанию стоит worker, если версия apache старая то itk, а какая модель лучше: itk, worker, prefork или event? Так сайтов у меня сейчас 5, захожу на них только я, но один будет раскручиваться, планируется нагрузка 10-50 хитов в минуту. И вообще достаточно ли VDS с 512 Мбайт памяти для развёртывания на нём LAMP или нужно минимум гигабайт? А так я, прочитав некоторые статьи в Интернете и руководствуясь собственными измышлениями, прописал некоторые директивы для worker, насколько так правильно?
KeepAlive On
KeepAliveTimeout 30
StartServers 1
MinSpareServers 1
MaxSpareServers 4
Serverlimit 4
MaxClients 4
MaxRequestsPerChild 30
2. Бывает клиент запрашивает один сайт, а ему выдаётся другой, при этом запрос возвращает нормальный код 200. Например клиент заходит не по имени виртуального хоста, а по ip-адресу, ему в этом случае должна выдаваться страница-заглушка, но вместо этого ему выдаётся сайт, чьё имя первое в алфавитном порядке. Я уже спрашивал о том как с этим бороться здесь Apache. Запретить вход на сайт по IP мне посоветовали создать виртуальный хост с именем 000-default и страницу-заглушку расположить на нём. Я так и сделал, хотя считаю этот метод костылём, ведь по правильному путь к странице-заглушке должен быть указан в директиве DocumentRoot, расположенной вне блоков <VirtualHost> до них и всё должно работать. Сегодня обнаружился ещё один косяк, я создал поддомен, но при попытке зайти на него - грузится основной сайт. Для пояснения выкладываю фрагменты конфигов:
/etc/httpd/conf/httpd.conf:
IncludeOptional conf.d/*.conf
<VirtualHost *:80>
ServerName m????????????.info
ServerAlias www.m????????????.info
DocumentRoot "/var/www/m????????????.info/html"
DirectoryIndex index.html index.htm index.php
AddDefaultCharset UTF-8
ErrorLog "/var/www/m????????????.info/error.log"
CustomLog "/var/www/m????????????.info/access.log" common
<Directory "/var/www/m????????????.info/html">
AllowOverride All
Options -Indexes
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName ver21022018.m????????????.info
DocumentRoot "/var/www/ver21022018.m????????????.info/html"
DirectoryIndex index.html index.htm index.php
AddDefaultCharset UTF-8
ErrorLog "/var/www/ver21022018.m????????????.info/error.log"
CustomLog "/var/www/ver21022018.m????????????.info/access.log" common
<Directory "/var/www/ver21022018.m????????????.info/html">
AllowOverride All
Options -Indexes
</Directory>
</VirtualHost>
Кто что подскажет?