|
06.04.2009, 23:44
|
#1
|
Администратор
Регистрация: 26.11.2007
Сообщений: 998
Вы сказали Спасибо: 365
Поблагодарили 617 раз(а) в 202 сообщениях
|
Настраиваем высокопроизводительный Web Сервер на базе Nginx + php-fpm
Документацию пишу сам, по личному опыту
- Работаем только со стабильными продуктами, поэтому убедимся что в файле /etc/make.conf прописаны стабильные ключи.
Код:
ACCEPT_KEYWORDS="x86"
- Обновим portage
- Дабы использовать максимальную производительность нужно подогнать CFLAGS и CXXFLAGS.
Для этого курим [Ссылка заблокирована: Зарегистрируйтесь!] под свой процессор.
Мои настрйоки к примеру:
Код:
CFLAGS="-march=prescott -O2 -pipe -fomit-frame-pointer -mmmx -msse3 -mfpmath=sse"
CXXFLAGS="${CFLAGS}"
- Настройки готовы, закидываем USE Флаги для Nginx
Код:
echo "www-servers/nginx fastcgi flv pcre perl status zlib -addition -debug -imap -ssl -sub -webdav" >> /etc/portage/package.use
Главное не забыть fastcgi.
- Собираем
- Если собрался без ошибок, начинаем править конфиг(nano /etc/nginx/nginx.conf):
Код:
user nginx nginx;
worker_processes 100;
# рекомендуют делать по количеству ядер
# но время отклика реально уменьшяется если запутить побольше воркеров,
# т.к. у меня памяти много сделал сразу 100
worker_priority -1;
# приоретет воркеров, сделал повыше
# чтобы из за медленных скриптов и корявых мускульных запросов статика отдавалась без лагов
worker_rlimit_nofile 51200;
#пид файл
pid /var/run/nginx.pid;
events {
worker_connections 6096;
use epoll;
}
http {
#подцепляем mime типы
include /etc/nginx/mime.types;
default_type application/octet-stream;
#Директива разрешает или запрещает выдавать версию nginx'а в сообщениях об ошибках и в строке заголовка ответа "Server".
server_tokens off;
log_format main '($gzip_ratio)$bytes_sent|$remote_user [$time_local] '
'"$request" $status ';
log_format download '$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_range" "$sent_http_content_range"';
# tcp options
client_max_body_size 100m;
server_names_hash_bucket_size 512;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# fastcgi options
fastcgi_intercept_errors on;
# Включаем GZIP на полную
gzip on;
gzip_comp_level 9;
gzip_buffers 32 64k;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/plain
text/html
text/css
application/x-javascript
text/xml
application/xml
application/xml+rss
application/octet-stream
application/pdf
application/x-msdos-program
application/x-shockwave-flash
text/javascript;
# кешируем открытые файлы
open_file_cache max=100000 inactive=40s;
open_file_cache_valid 60s;
open_file_cache_min_uses 2;
open_file_cache_errors on;
# Теперь собственно начинается обработка хостов
# default
include /etc/nginx/hosts/default.nginx;
}
Теперь нужно создать директорию для наших хостов
Код:
mkdir /etc/nginx/hosts
- Понеслась конфиг /etc/nginx/hosts/default.nginx
Код:
# Default virtual server
server {
# слушаем 80 порт
listen 80;
# название хоста
server_name default;
# ежу понятно, что за 2 пункта снизу
access_log /var/log/nginx/default.access.log main;
error_log /var/log/nginx/default.info.error.log error;
# Обрабатываем PHP через fastcgi сокет
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php.default.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
# запрещаем смотреть .ht* файлы
location ~ /\.ht {
deny all;
}
# впринципе сама дислакация скриптов
location / {
root /opt/www/default;
index index.php index.html index.htm;
}
}
- Отлично - Nginx готов к работе, вопрос за малым... PHP ))
Тут все сложнее, не будем же мы извращаться и компилить руками php...
Будем ставить PHP из своего ebuild`а, а чтобы не портить портажи - создаем Overlay.
Для этого в файле /etc/make.conf дописываем строчку
Код:
PORTDIR_OVERLAY="/home/gentoo/portage"
Соответственно создаем путь к нашему файлу
Код:
/home/gentoo/portage/www-servers/nginx/
Адресс должен быть обязательно такой.
- Кладем из аттача Файл в созданную нами директорию и распаковываем.
Overlay готов.
не забываем указать USE="fpm"
А также, чтобы не было проблем в дальнейшем с обновлением маскируем php
Код:
echo ">dev-lang/php-5.2.8-r1" >> /etc/portage/package.mask
Добавляем что нужно для сборки и понеслась
С утра допишу, чото интузиазм пропал, но ничего с голым Nginx`ом тоже можно много всего сделать )
Вообще буду выкладывать свои заметки и наработки... мб кому поможет
__________________
В памяти моей ты останешься молодой и любимой...
Последний раз редактировалось BIT; 07.04.2009 в 00:00.
|
|
|
Этот пользователь сказал Спасибо BIT за это полезное сообщение:
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
|
|