Сегодня мы поговорим ещё о трех относительно бесполезных модулях apache2, которые упорно кушают нашу память.
mod_cgi, mod_status, mod_deflate.
С mod_cgi всё понятно — он нужен для того, чтобы апач мог дергать и запускать cgi скрипты, будь они на баше, на перле, на питоне, на брейнфаке или другой неведомой хрени, которая умеет отдать что-то в common gateway interface с правильными хедерами.
С учетом того, что CGI умирает в принципе, а fast_cgi и его разновидности прекрасно цепляются в nginx — модуль совершенно бесполезен. Ну при условии, что вы действительно не используете CGI скрипты.
mod_status — согласитесь, вы им никогда не пользовались. Можете почитать что он делает. Он умеет отдавать какую-то там информацию об работающем апаче, бла-бла-бла… Вот честно — ни разу им не пользовался за 5 лет.
mod_deflate — позволяет сжимать данные апачем перед передачей клиенту. А клиент у нас кто? Правильно, nginx. Сжимать данные для передачи на локальную петлю, которая умеет прокачивать через себя на хорошем сервере пару десятков гигабит в секунду? Кхм. А вся забавность ситуации в том, что запрос mod_deflate в гугле посылает нас к кому? Правильно, к Игорю Сысоеву. Естественно, что весь необходимый функционал deflate был перенесен в nginx.
Сжимать данные в nginx можно, например, модулем gzip.
Отключим их:
root@debian-host:~# a2dismod status
root@debian-host:~# a2dismod cgi
root@debian-host:~# a2dismod deflate
root@debian-host:~# apachectl restart
Только что мы отвоевали примерно 500 кб RSS с каждого форка апача (и ~10 мб VIRT).
Продолжите чтоли, интересная ведь тема
Аха, продолжу обязательно, когда времени побольше будет.
Здравствуйте не как не могу найти в интернете как можно отключить mod_cgi через htaccess, за ранее спасибо.
Никак.
Через htaccess модули не выключаются вообще. Там можно только задать поведение определенных модулей (таких как rewrite/access и прочих) для конкретного каталога на диске или конкретного хоста/uri.
В случае с cgi в htaccess вы можете включить cgi для определенных каталогов. По дефолту он выключен для всех каталогов.
Спасибо за ответ. Проблема собственно вот в чем в CPANELL 11 просмотрел статистику обращения и увидел повторяющие запросы к
/cgi-sys/Count.cgi
/cgi-sys/guestbook.cgi
/cgi-sys/suspendedpage.cgi
при выполнение /cgi-sys/Count.cgi Выводиться сообщения empty query_string
при выполнение /cgi-sys/guestbook.cgi Выводиться сообщения No Username given
Perl практический не знаю поэтому хотел бы отключить выполнения perl ruby на хостинге.
За ранее спасибо, кстати в htaccess не включено выполнения cgi скриптов.
Если есть мнения пишите !
root@debian-host:~# a2dismod cgi
root@debian-host:~# apachectl restart
Вы статью читали?
Спс за совет но это у меня на хостинге я являюсь клиентом а не админом и не как не смогу выполнить что написано в статье.
У хостеров саппорт есть.
Да но на 3 моих письма ответили бессмысленно. и в просьбе отключить выполнения cgi или pl* отказали
Они говорят что нет такой директорий у меня
cgi-sys
Спасибо, отключил даже эти 3 — стало немного легче. А где первая часть? Даже через расширенный поиск гугла на debian.pro не нашёл!
https://debian.pro/?s=a2dismod вот так проще всего найти все статьи подобные
Спасибо, inkvizitor68sl. Отключил ещё ssl и autoindex, свободной памяти на vps стало на 100М больше!
С учётом тех 3-х модулей, изменения настроек prefork и отключения innodb — теперь половина доступной памяти свободна.
А я-то уже думал на следующий тариф переезжать. Спасибо!
P.S. Вообще приятный спокойный стиль, легко читать. Пишите больше :)
Пишу, пишу)
Надо только придумать ещё что писать хД
Напишите про apache + fastcgi + разные версии php. Чтобы у каждого пользователя была возможность выбрать версию php под виртуалхост. Буду рад почитать)
Смысла уже нет. Вообще смысла использовать apache+fcgi нет. Единственная причина использовать apache — это mod_rewrite (htaccess файлы который обрабатывает), а он с fcgi в апаче не работает.
Про php-fpm разных версий может и напишу.
Мне просто интересно как на хостингах реализовано nginx+apache+php разных версий + mod_rewrite. Насколько я понимаю от mpm_itk придется отказаться?
Направьте на путь истинный по поводу Nginx + apache + php разных версий + mod_rewrite)
Дабы мозг не мучать, проще всего будет повесить один nginx на 80й порт и разные php в отдельных чрутах — https://debian.pro/440 (а дальше уже nginx-ом разруливать трафик).
А так можно что-то такое у себя сделать — http://habrahabr.ru/post/233061/