CentOS 5.4 с установкой nginx-0.8.21-1.el5 + php-5.2.11-2.el5 + httpd-2.2.14-1.el5 +mysql-server-5.0.86-1.el5 и всё это должно работать под управлением ISPmanager-Lite 4.3.32 (вечная лицензия, можно поюзать и демо-версию пару недель бесплатно, что хватит для настройки сервера, а потом и не понадобится уже - предварительно зарегистрировавшись на офф. сайте и заказав)
Ставилось все это на VPS:
model: Intel(R) Core(TM) i7 CPU 920 @ 2.67GHz
архитектура: x86_64
cpu MHz: 587.422
cache size: 8192 KB
cpu cores: 4 (в nginx.conf указываем настройку соответственно ядер: worker_processes 4; )
Mem: 200 Mb
Swap: 0 Mb (фича Виртуозы, нету в ней виртуальной памяти)
Итак, после установки в панеле VDS выбранной системы CentOS 5.4 с уже установленными пакетами php, httpd, mysql-server, и разумеется без nginx устанавливаем панель ISPmanager-Lite:
Пользовался программой SSH Explorer в которой есть встроенный SFTP, хорошая прожка, рекомендую!
1. Первым делом удалим пакеты установленные вместе с системой, чтобы установка панели прошла удачно, иначе возможны сбои, и потом геморроя не оберешься.
yum remove httpd
yum remove php
yum remove phpmyadmin
yum remove mysql-server
yum remove php-mysql
yum remove sendmail
yum remove iptables system-config-securitylevel-tui
Теперь ставим панель:
wget http://download.ispsystem.com/install.sh
sh install.sh
Установка будет идти довольно продолжительно, периодически запрашивая подтверждения на дальнейшие действия. В списке устанавливаемых конфигураций. Выбирайте рекомендуемые, самая первая строчка, или последнюю, где можно будет выбрать что надо устанавливать а что и пропустить.
После установки панели проверяем её, заходим по адресу https://ваш_IP_сервера/manager/
Там сразу незабываем подкорректировать настройки:
Настройки сервера -> Настройки PHP ставим памяти побольше ))
2. Теперь устанавливаем Nginx
Для начала установим репозиторий:
rpm -ihv [url]http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-3.noarch.rpm[/url]
rpm -ihv [url]http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm[/url]
Теперь займемся обновлением ПО. Удалим или обновим свой старый php
yum remove php
теперь установим новый
yum install php php-devel php-fpm php-mcrypt php-mssql php-gd php-mysql
с установкой модулей php тут можно незаморачиваться. А установить требуемое с панели ISP/
Обновим mysql и apache
yum update mysql
yum update httpd
Устанавливаем nginx
yum install nginx
Для того, чтобы связать ISPManager и nginx очищаем кэш пакетов ISPManager
/usr/local/ispmgr/sbin/pkgctl -D cache
и рестартим ISP
killall -9 -r ispmgr
Идем в пункт Возможности(Features) панели ISPManager и там устанавливаем Nginx.
p.s. хотя можно попробовать активировать его из шелла:
/usr/local/ispmgr/sbin/pkgctl activate nginx
Перегружаем сервак с панели VDS.
Теперь нам потребуется модуль mod_rpaf, т.к. по умолчанию связка nginx+apache для всех IP адресов получаемых через $_SERVER['REMOTE_ADDR'] будет показывать адрес вашего сервера.
yum install mod_rpaf
В файле rpaf.conf располагающемся в /etc/httpd/conf.d/
Прописываем:
LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx
RPAFheader X-Real-IP
где xx.xx.xx.xx – IP адрес вашего сервера. Если на сервере несколько адресов IP, то прописываем их по аналогии через пробел. Перегружаем сервак.
Теперь привожу собственные настройки nginx.conf (/etc/nginx/) и httpd.conf (/etc/httpd/conf/)
Перед изменениями сохраните эти файлы где нибудь., чтобы в случае чего можно было их вернуть
В httpd.conf изменяем параметр Listen на
Listen 127.0.0.1:8080
Таким образом наш апач будет работать на сервере локально.
В nginx.conf черт ногу сломит, по инету полазил и собрал свой конфиг:
user nginx;
worker_processes 4;
timer_resolution 100ms;
worker_rlimit_nofile 8192;
worker_priority -5;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 2048;
use epoll;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
server_tokens off;
gzip on;
gzip_static on;
gzip_comp_level 5;
gzip_min_length 1024;
keepalive_timeout 65;
limit_zone myzone $binary_remote_addr 10m;
include /etc/nginx/conf.d/*.conf;
server {
listen 188.40.161.8:80;
server_name ******** www.********.ru;
rewrite ^(/manager/.*)$ https://$host$1 permanent;
location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass [url]http://127.0.0.1:8080;[/url]
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass [url]http://127.0.0.1:8080;[/url]
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root /var/www/seaterror/data/www/********;
access_log /var/www/httpd-logs/********.access.log;
error_page 404 = @fallback;
}
location @fallback {
proxy_pass [url]http://127.0.0.1:8080;[/url]
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
client_max_body_size 16m;
}
где, ******** - это домен вашего сайта.
На оптимальность непретендуется! Это отсебячина. Тут я надеюсь на помощь и подсказки от знающих гуру )))
Теперь самое интересное.
При создании: Доменных имен и WWW доменов из панели ISPManager.
В конфиги прописываются параметры:
в nginx.conf -
proxy_pass http://_ваш_IP_сервера:8080;
proxy_redirect http://_ваш_IP_сервера:8080;
Мне лично кажется что это неправильно, так как апач будет работать и по этим адресам, меняем эти строчки на:
proxy_pass http://127.0.0.1:8080;
proxy_redirect off;
Это делаем во всех записях! Смотрите пример моего конфига, там можно прописать и дополнительные настройки.
В httpd.conf в самом конце находим записи
NameVirtualHost ваш_IP_сервера:8080
<VirtualHost ваш_IP_сервера:8080>
Как видим таже самая ватрушка, апач работает на внешнем IP, меняем на локалку 127.0.0.1
NameVirtualHost 127.0.0.1:8080
<VirtualHost 127.0.0.1:8080>
Так же аналогичные строки заменяем во всем конфиге!
Теперь вопрос к ГУРУ, это я правильно сделал и понял или в этом кроется ошибка?
Сервак нормально перегрузился после этого всего, хотя по проверке конфигов:
service httpd configtest
[warn] module ispmgr_module is already loaded, skipping
[warn] The Alias directive in /usr/local/ispmgr/etc/ispmgr.inc at line 3 will proba bly never match because it overlaps an earlier Alias.
[warn] The Alias directive in /usr/local/ispmgr/etc/ispmgr.inc at line 4 will proba bly never match because it overlaps an earlier Alias.
[warn] The Alias directive in /usr/local/ispmgr/etc/ispmgr.inc at line 5 will proba bly never match because it overlaps an earlier Alias.
[warn] The Alias directive in /usr/local/ispmgr/etc/ispmgr.inc at line 6 will proba bly never match because it overlaps an earlier Alias.
[warn] NameVirtualHost 127.0.0.1:8080 has no VirtualHosts Syntax OK
Видим проблемы с панелью, вроде ненравится наши правки настроек конфигов на локалку ((
При этом панель ISP работает вроде нормально, в Сервисах только процесс http отображается как вырубленный, наверное из-за локалки О_о
а на
service nginx configtest
the configuration file /etc/nginx/nginx.conf syntax is ok
configuration file /etc/nginx/nginx.conf test is successful
Тут вроде всё ОК
![;) ;)](style_emoticons/default/wink.gif)
Сервак стоит, пока тестирую, что обнаружу отпишусь ))
Очень надеюсь на комментарии специалистов, поправок и предложений в оптимизации сервера.
Ниже привожу свой top:
[attachment=442:top.jpg]