Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
# Директива уменьшает разрешение времени в рабочих процессах, за счёт чего уменьшается число системных вызовов gettimeofday().
timer_resolution 100ms;
#Организовываем кеш для FastCGI сервера, я использую раздел в ram
fastcgi_cache_path /tmp/fcgi-cache/ levels=1:2 keys_zone=one:10m;
#Расширяем буфера отдачи
output_buffers 32 512k;
#Если не использовать эту опцию — то в форумах все будут сидеть под именем первого вошедшего на форум
fastcgi_hide_header «Set-Cookie»;
#Этот запрос заставит nginx кешировать все что проходит через него
fastcgi_ignore_headers «Cache-Control» «Expires»;
su - www-data
$ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) 0
memory(kbytes) unlimited
locked memory(kbytes) 64
process unlimited
nofiles 32000
vmemory(kbytes) unlimited
locks unlimited
nofiles 32000
cat /proc/version
Linux version 3.2.0-0.bpo.3-686-pae (Debian 3.2.23-1~bpo60+2) (debian-kernel@lists.debian.org) (gcc version 4.4.5 (Debian 4.4.5-8) ) #1 SMP Thu Aug 23 08:21:41 UTC 2012
su - www-data
$ ulimit -n
1024
$ ulimit -a
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) unlimited
stack(kbytes) 8192
coredump(blocks) 0
memory(kbytes) unlimited
locked memory(kbytes) 64
process unlimited
nofiles 1024
vmemory(kbytes) unlimited
locks unlimited
$ cat /proc/version
Linux version 2.6.32-5-amd64 (Debian 2.6.32-45) (dannf@debian.org) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Sun May 6 04:00:17 UTC 2012
cat /proc/sys/net/core/somaxconn
2048
Данная операция в php-fpm, на наш взгляд, весьма тривиальна:
nginx::backend::php {"Another site":
port => 9001,
try_files => '$uri $uri/ $uri/index.html /index.php?url=$uri&$args',
pool_user => "www-data2",
pool_group => "www-data2",
}
тестово периодически ставятся разные движки
Оптимальное число обработчиков зависит от ресурсов сервера, сложности php-скриптов, нагрузки, создаваемой на mysql-сервер и т.д. В любом случае оптимальное число обработчиков нужно подбирать на основе тестирования работы сайта. Методика тестирования неплохо описана тут, повторяться не буду.
#! /bin/sh
sed -r 's/<loc/\n<loc/g; s!</loc>!</loc>\n!g' $1 | sed -r -n '/<loc>.*?<\/loc>/! D; /<loc>.*?<\/loc>/ s!</?loc>!!g; s!\s+!!g; P'
./sitemap2list.sh sitemap.xml > usrl.txt
siege -i -b -t 1m -с <num> -f urls.txt
[HOST=hostname]
open_basedir = somedir
[example.com]
include=/etc/php-fpm.d/default
listen = /var/run/php-fpm/$pool.socket
slowlog = /var/www/$pool/logs/slow.log
php_admin_value[open_basedir] = /var/www/$pool
php_admin_value[upload_tmp_dir] = /var/www/$pool/tmp
server {
set $domain example.com;
server_name example.com www.example.com;
include php.conf;
}
fastcgi_pass unix:/var/run/php-fpm/$domain.socket;
access_log /var/www/$domain/logs/nginx.access.log;
root /var/www/$domain/www;
chown www-data:www-data /tmp/wwwpool.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0660
Nginx+php-fpm+perl под Debian Squeeze