Кардинально новых фич крайне мало, скорее доделка и повсеместное улучшение, но на этом попрощие работа выполнена просто огромная!
Подробнее: http://www.opennet.ru/opennews/art.shtml?num=33138
Showing posts with label Apache. Show all posts
Showing posts with label Apache. Show all posts
Sunday, 18 March 2012
Saturday, 23 July 2011
Модуль для логгирования POST запросов в Apache
Вот описание: http://freshmeat.net/projects/mod_log_post
Вот официальный сайт загрузки (требуется регистрация): http://ftp.robert-scheck.de/linux/mod_log_post/
А вот зеркало без регистрации: http://fastvps.googlecode.com/files/mod_log_post-0.1.0.tar.gz
Открываем конфиг:
Там заменяем:
И применяем изменения:
Вот официальный сайт загрузки (требуется регистрация): http://ftp.robert-scheck.de/linux/mod_log_post/
А вот зеркало без регистрации: http://fastvps.googlecode.com/files/mod_log_post-0.1.0.tar.gz
cd /usr/srcПосле этого модуль скопируется в: /usr/lib/apache2/modules, а конфиг его добавится в /etc/apache2/conf.d/log_post.conf.
wget http://fastvps.googlecode.com/files/mod_log_post-0.1.0.tar.gz
tar -xf mod_log_post-0.1.0.tar.gz
cd mod_log_post-0.1.0
apt-get install -y apache2-dev
./configure
make install
Открываем конфиг:
vim /etc/apache2/conf.d/log_post.conf
Там заменяем:
LoadModule log_post_module modules/mod_log_post.soна
LoadModule log_post_module /usr/lib/apache2/modules/mod_log_post.so
И применяем изменения:
/etc/init.d/apache2 restart
tail -f /var/log/apache2/post_log
Monday, 25 April 2011
Sunday, 24 April 2011
Tuesday, 7 December 2010
Баг с source пакетом от Apache2 в Debian
Актуальная версия Apache в Debian сейчас lenny8, но исходники Апача упорно качаются от 7го:
sources.list (это этом не используется заpinивание пакаджей):
Бага / фича?
Update: видимо, какое-то из зеркал тупит, на другой машине не воспроизвелось и стянуло lenny8.
# dpkg -l | grep 'apache2 '
ii apache2 2.2.9-10+lenny8 Apache HTTP Server metapackage
# apt-get clean
# apt-get source apache2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Need to get 6546kB of source archives.
Get:1 http://security.debian.org lenny/updates/main apache2 2.2.9-10+lenny7 (dsc) [1682B]
Get:2 http://security.debian.org lenny/updates/main apache2 2.2.9-10+lenny7 (tar) [6397kB]
Get:3 http://security.debian.org lenny/updates/main apache2 2.2.9-10+lenny7 (diff) [147kB]
Fetched 6546kB in 6s (1012kB/s)
gpg: Signature made Sun 28 Mar 2010 10:07:07 PM MSD using DSA key ID AE3BE9AA
gpg: Can't check signature: public key not found
dpkg-source: extracting apache2 in apache2-2.2.9
dpkg-source: info: unpacking apache2_2.2.9.orig.tar.gz
dpkg-source: info: applying apache2_2.2.9-10+lenny7.diff.gz
sources.list (это этом не используется заpinивание пакаджей):
cat /etc/apt/sources.list
deb ftp://mirror.hetzner.de/debian/packages lenny main contrib non-free
deb ftp://mirror.hetzner.de/debian/security lenny/updates main contrib non-free
deb http://ftp.de.debian.org/debian lenny main non-free contrib
deb-src http://ftp.de.debian.org/debian lenny main non-free contrib
deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free
Бага / фича?
Update: видимо, какое-то из зеркал тупит, на другой машине не воспроизвелось и стянуло lenny8.
Saturday, 27 November 2010
Как работает Apache Per User MPM?
http://www.peruser.org/trac/peruser/wiki/PeruserUnderTheHood
Из фундаментальных отличий от prefork - наличие мультиплексор (третий тип) процесса, который принимает соединение, определяет, на какой vhost оно идет и передает соединение нужному рабочему процессу.
Из фундаментальных отличий от prefork - наличие мультиплексор (третий тип) процесса, который принимает соединение, определяет, на какой vhost оно идет и передает соединение нужному рабочему процессу.
Wednesday, 24 November 2010
Sunday, 21 November 2010
Для чего Apache 2.2 Prefork MPM использует shm память?
Сейчас изучаю исходный код Apache 2.2 Prefork и хотелось бы объяснить, зачем Апача использует SHM память.
Итак, имеем в почти чистой системе такую вот картину по использованию SHM памяти:
Запускаем Апача:
/etc/init.d/apache2 start
Starting web server: apache2.
Убеждаемся, что запустились и считаем количество тушек:
Также обращаем внимание, что появился блок SHM памяти:
Итак, зачем же она нужна Апачу? :)
Итак, имеем в почти чистой системе такую вот картину по использованию SHM памяти:
ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x0000014c 0 root 600 384 0
Запускаем Апача:
/etc/init.d/apache2 start
Starting web server: apache2.
Убеждаемся, что запустились и считаем количество тушек:
ps aux | grep apa | wc -l
8
Также обращаем внимание, что появился блок SHM памяти:
ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x0000014c 0 root 600 384 14
0x0103c460 65537 root 600 345416 7
Итак, зачем же она нужна Апачу? :)
Tuesday, 16 November 2010
Как сделать Apache hook на событие ДО форка child?
Есть только после форка:
Как сделать до форка? Кто-нибудь такое делал?
Apache provides hooks into the child process initialization and exit handling. The child process initialization handler, installed with PerlChildInitHandler, is called just after the main server forks off a child but before the child has processed any incoming requests. The child exit handler, installed with PerlChildExitHandler, is called just before the child process is destroyed.
Как сделать до форка? Кто-нибудь такое делал?
Saturday, 13 November 2010
Тюнинг Apache (Prefork) MaxClients на OpenVZ VPS
Имеем работающий хотя бы минут 15-20 VPS с отключенным Апачем:
Запускаем Апача:
Дерагем несколько страниц сайта и смотрим данные free повторно:
Теперь считаем число обработчиков Апача:
Далее производим расчет памяти, занимаемой одним процессом Апача (делаим на 5, а не на 6, потому что 1 процесс Апача является родительским и обработку сайтов не осуществляет):
То есть, около 4 мегабайт на один процесс. Это крайне примерный метод, так что стоит заложить в него +5 мегабайта еще, то есть взять где-то 8-9 мегабайт на процесс. Более точные измерения можно провести вот так: http://phpsuxx.blogspot.com/2010/04/blog-post_9092.html
Теперь берем объем свободной памяти до старта Апача (347012) и делим его на память, занимаемую 1 тушкой Апача:
Итого, ставим MaxClients у Апача в 35 и живем спокойно.
free
total used free shared buffers cached
Mem: 409600 62588 347012 0 0 0
-/+ buffers/cache: 62588 347012
Swap: 0 0 0
Запускаем Апача:
/etc/init.d/apache2 start
Дерагем несколько страниц сайта и смотрим данные free повторно:
free
total used free shared buffers cached
Mem: 409600 81100 328500 0 0 0
-/+ buffers/cache: 81100 328500
Swap: 0 0 0
Теперь считаем число обработчиков Апача:
ps aux | grep apa | wc -l
6
Далее производим расчет памяти, занимаемой одним процессом Апача (делаим на 5, а не на 6, потому что 1 процесс Апача является родительским и обработку сайтов не осуществляет):
perl -e ' print scalar (81100-62588)/5/1024'
3.615625
То есть, около 4 мегабайт на один процесс. Это крайне примерный метод, так что стоит заложить в него +5 мегабайта еще, то есть взять где-то 8-9 мегабайт на процесс. Более точные измерения можно провести вот так: http://phpsuxx.blogspot.com/2010/04/blog-post_9092.html
Теперь берем объем свободной памяти до старта Апача (347012) и делим его на память, занимаемую 1 тушкой Апача:
perl -e '347/9'
38.5555555555556
Итого, ставим MaxClients у Апача в 35 и живем спокойно.
Friday, 12 November 2010
Apache mod_ruid2 - suexec new generation или нет ?
Вот порекомендовали mod_ruid2 с такой вот заявкой приятных фич:
Интересный вариант, однако.
Из недостатков - подозрения, что это потенциально небезопасно. Из используемых технологий - Linux capabilities (да, да, как раз из-за них требуется Posix и Линукс). Из принципа работы - при отфорке процесса даем ему capabilities CAP_SETGID и CAP_SETGID (то есть, работая от обычного пользователя он получает возможность менять себе uid/gid, как пожелает) и если следующий запрос идет к другому сайту (точнее - сайту принадлежащему другому пользователю), с чистой совестью меняем uid / gid на него и продолжаем обработку.
mod_ruid2 is a suexec module for apache 2.0, based on mod_ruid and mod_suid2
-it runs only on linux because afaik only linux has implemented posix 1003.1e capabilities
-it has better performance than mod_suid2 because it doesn`t need to kill httpd children after one request. it makes use of kernel capabilites and after receiving a new request suids again.
-there are some security issues, for instance if attacker successfully exploits the httpd process, he can set effective capabilities and setuid to root. i recommend to use some security patch in kernel (grsec), or something..
Интересный вариант, однако.
Из недостатков - подозрения, что это потенциально небезопасно. Из используемых технологий - Linux capabilities (да, да, как раз из-за них требуется Posix и Линукс). Из принципа работы - при отфорке процесса даем ему capabilities CAP_SETGID и CAP_SETGID (то есть, работая от обычного пользователя он получает возможность менять себе uid/gid, как пожелает) и если следующий запрос идет к другому сайту (точнее - сайту принадлежащему другому пользователю), с чистой совестью меняем uid / gid на него и продолжаем обработку.
Subscribe to:
Posts
(
Atom
)