Linux (Centos, RHEL 5/6) - настройка mod_performance

mod_performance - это модуль Apache, который измеряет нагрузку CPU, Memory, Disk IO по каждому виртуальному хосту, либо глобально. Есть возможность сохранять в СУБД MySQL, PostgreSQL, Sqlite и в текстовый лог-файл.
Ниже описано как измерить нагрузку и сохранить статистику в лог-файл. Нагрузка измеряется только для одного виртуального хоста www.example.com

Установка mod_performance

Есть два варианта установить пакет. Я воспользовался вторым вариантом.

1 вариант:

Подключить репозиторий centalt и установить пакет mod_performance

2 вариант

Установить необходимые для сборки пакеты:

yum install httpd-devel apr-devel gd-devel make gcc

Собрать из исходников:

cd ~
wget http://lexvit.dn.ua/utils/getfile.php?file_name=mod_performance-0.2.tar.gz -O mod_performance-0.2.tar.gz
tar  -xvzf mod_performance-0.2.tar.gz
cd mod_performance-0.3-12/
make
cp .libs/mod_performance.so /etc/httpd/modules/
cp mod_performance.conf /etc/httpd/conf.d/
mkdir -p /statistics/apache
chown -R apache:apache /statistics
chmod -R 755 /statistics

apache - защита от DDOS

mod_evasive

Установка

 yum install mod_evasive

Настройка

Создадим цепочку

 iptables -N BLACKLIST-APACHE
 iptables -A BLACKLIST-APACHE -j RETURN

Создадим правило перед правилом, разрешающим доступ к порту 80

 iptables -A INPUT -p tcp -m tcp --dport 80 -j BLACKLIST-APACHE

FreeBSD - установка, настройка Apache, PHP, MySQL

Apache

Добавляем строки в ''/etc/make.conf''

 # ----------------- Apache ---------------------------------
 .if ${.CURDIR} == /usr/ports/www/apache22
 WITHOUT_CACHE=yes
 WITHOUT_DAV=yes
 WITHOUT_EXPERIMENTAL=yes
 WITHOUT_LDAP=yes
 WITHOUT_MISC=yes
 WITHOUT_PROXY=yes
 WITHOUT_SSL=yes
 WITHOUT_THREADS=yes
 WITH_SUEXEC=yes
 SUEXEC_DOCROOT=/home/www
 .endif
 # ----------------------------------------------------------

Запускаем сборку

 # cd /usr/ports/www/apache22
 # make config

FreeBSD - Apache + SSL

Настройка SSL

 mkdir /usr/local/etc/apache22/ssl
 cd /usr/local/etc/apache22/ssl

Сгенерим сертификат gen-cert.sh

 ./gen.sh (заполнить сертификат, подписать паролем)

Создадим файл /usr/local/etc/apache22/ssl/echo

 #!/bin/sh
 
 /bin/echo пароль

/usr/local/etc/apache22/extra/httpd-ssl.conf

 Listen 443
 
 AddType application/x-x509-ca-cert .crt
 AddType application/x-pkcs7-crl    .crl
 
 SSLPassPhraseDialog  |/usr/local/etc/apache22/ssl/echo
 SSLSessionCache        "shmcb:/var/run/ssl_scache(512000)"
 SSLSessionCacheTimeout  300
 SSLMutex  "file:/var/run/ssl_mutex"
 
 <VirtualHost *:443>
 
         DocumentRoot    "/home/www/wiki.vukor.tomsk.ru/public_html"
         ServerName      wiki.vukor.tomsk.ru:443
         UseCanonicalName Off
         SuexecUserGroup vukor vukor
         ServerAdmin     vukor@vukor.tomsk.ru
         ErrorLog        "/usr/home/www/wiki.vukor.tomsk.ru/error-ssl_log"
         TransferLog     "/usr/home/www/wiki.vukor.tomsk.ru/access-ssl_log"
 
         <Directory "/home/www/wiki.vukor.tomsk.ru/public_html">
                 <IfModule mod_fcgid.c>
                         <Files ~ (\.php)>
                                 SetHandler fcgid-script
                                 FCGIWrapper /home/www/wiki.vukor.tomsk.ru/cgi-bin/php.sh .php
                                 Options +ExecCGI
                         </Files>
                 </IfModule>
         </Directory>
 
         SSLEngine on
         SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
         SSLCertificateFile "/usr/local/etc/apache22/ssl/server.crt"
         SSLCertificateKeyFile "/usr/local/etc/apache22/ssl/server.key"
 
 </VirtualHost>

Ссылки

 
blog.txt · Последние изменения: 2013/01/23 14:51 — Антон Бугреев · []