ispCP - Board - Support
ispCP & nginx - Printable Version

+- ispCP - Board - Support (http://www.isp-control.net/forum)
+-- Forum: ispCP Omega International Area (/forum-22.html)
+--- Forum: Russian Corner (/forum-53.html)
+--- Thread: ispCP & nginx (/thread-8322.html)

Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18


RE: ispCP & nginx - SolarW - 02-27-2010 07:29 AM

Офтопим...
Я канешна чайник по большому счету но знакомые слова вижу Smile
Столкнула судьба с такой CMS-кой как Битрикс.
CMS-ка умеет дофигища и как следствие достаточно громоздкая.
Авторы памятую об этом в последние билды встроили чудный инструмент для анализа производительности системы.
Попробовал поставить на не оптимизированный LAMP - так себе шевелится.
Добавил eAccelerator - бодрее забегала.
Скачал подготовленную авторами виртуалку под Вмварь - дык однако летает.
Вот в этой виртуалке похоже реализована максимальная оптимизация LAMP'а.
nginx, zend, eaccelerator и прочее.
Так что если кому-то интересно - можете скачать, поковыряться...


RE: ispCP & nginx - data-stream_ru - 02-27-2010 09:05 AM

marchaos
Планируемое и реально получившееся не одно и то же.
С nginx-ом решений и кеонфигов может быть очень много.
Самое простое и юзабельное от koffu. Вот его мы и будем доводить и вбрасывать буржуям со своими копирайтами. На первых порах.
Это решение даёт ощутимый, но небольшой выигрыш.
Если я наконец перестану флудить с буржуями и доведу дело до конца.

Я пошёл дальше, переложив львиную долю нагрузок с апача на fast-cgi. И столкнулся с массой проблем. Но решаемо.
Это следующий этап. И он даёт выигрыш на 80%, по крайней мере в пиках моего главного сервера.

И третий вариант - вообще отказ от апача. Но по вышеизложенным причинам это годится только для бесплатных хостингов. Хотя реализуется очень просто - меняются шаблоны апача и конфиги создаются для nginx в других папках. Минимум вмешательства в панель.

Сделаю, когда озабочусь бесплатным хостингом у себя. Давно собираюсь.
Да, исчо для малых ВПС очень актуально.

> Спор бессмысленен так я не знаком с предметом спора

Предмет спора установлен на Яндекс, Рамблер, Мамба.ру, Майл.ру и другие высокотрафиковые ресурсы.
Потребители говорят за продукт.
Проблема тут только в том, что им панель не нужна. у них не токмо по одному сайту на сервак, у них на один сайт несколько серваков. И им не надо беспокоится об удобстве клиентов хостинга и совместимости с апачем и зендом. Им эти моменты просто пох.

> Если nginx это не кеширование то что же?
Это вот что -
google.ru
"nginx"

> Я думаю если бы он был так хорош то процент серверов его использующих был бы около 100

Вы мыслите как этот националист немецкий, как его тама...
Который меряет качество продукта % использования.
Я ему объяснил уже в доходчивых выражениях, что самая надёжная система это виновс, а самые клёвые бабы это проститутки, потому чито у них много юзеров. А ролс-ролс и ферари это очень плохие тачки, т.к. у них мало юзеров.
А дорогие рестараны имеют прроблемы с безопасностью, по сравнению с мак-данальдсом.

И ещё поросил не смешить мои тапочки.

> Кстати для Apache есть модули которые nginx заменяют.

Ага, а для макдональдса есть добрый доктор с клизмой.
> apache22 плюс eaccelerator+Zend Optimizer

Вот на эту тему можно поподробнее плиз?
Я на зенде потерял несколько дней работы, как и на акселераторе.
> но есть и обратная сторона медали, недостатки о который не раз уже говорилось - медлительность, неповортливость, требование к памяти

Я бы чуток поправил, коллега. Мона?

Апач самый скорострельный сервак. Дапже без mod_fcgi. Если у вас 4 проца, 8 магабаит рама и один сайт со 100 посетителями в сутки. И конечно же вас ни кто не Ддосит.
Тут апач даст фору всем.

Как только на сервак начинаются нагрузки, апач тормозит, происходит утечка памяти и наконец апач валится. Или в зависимости от конфига системы, начинают валится малозначительные процессы. Вроде моего check_sys (подозреваю именно апач отключает обработку перла как только ему начинает не хватать ресурсов). В
результате имеем параметры хостинга от агавы. Или ещё хуже.

Здесь решение сначала одно -
Отдать обработку статики более простому и лёгкому серверу и освободить апач от удержания медленных конектов. Апачу оставить только скрипты.

Но дальше встаёт задача отнять у апача часть скриптов и передать их независимому скрипт-серверу.

Дальнейшее решение - полный отказ от апача. Как на рамблере и яндексе.
Но ещё раз, на комерческих хостингах это невозможно!
В остальном, коллега вам всё объяснил. Подробности спросите у яндекса.

Я думаю если коллега отнесётся к теме так же серьёзно как и я, то вы все вскоре сможите увидеть разницу. Разогнав хостинг на целероне до двухпроцессорной тачки даже без фри-бздя.
> CMS-ка умеет дофигища и как следствие достаточно громоздкая.

Я хупс на связке не сог заставить работать. Пришлось отдать его апачу. А ведь сцуко жрёт 23% двухядерного цпу!

> Скачал подготовленную авторами виртуалку под Вмварь - дык однако летает.
Вот в этой виртуалке похоже реализована максимальная оптимизация LAMP'а.
nginx, zend, eaccelerator и прочее.

Поподробнее плиз, это с чем едят и какие там принципы взаимодействия.
Ещё раз,
для панели мы будем двигать ренение от koffu с некоторыми модификациями и исправлениями, до которых я сейчас дойду путём интенсивоной работы над проектом

Это даст 20-30% прироста мощности. Немного, зато просто, быстро и дёшево.

Свои 80% я оставлю для особо продвинутых, кто не задат дурацких вопросов и умеет гуглить и решать частные проблемы сам. Это будет просто демонстрация как можно путём честной конкурентной борьбы заработать себе на новую БМВуху. Конечно ламера хотят но не могут, а кому до них дело то есть? Ыть?
Ах да, кстати, думаю коллега согласится, что бесплатно раздавать решения, позволяющие выиграть 80% бюджета хостинг-компаний не совсем разумно Wink

Думаю стоит обсудить ряд моментов в привате.


RE: ispCP & nginx - marchaos - 02-27-2010 10:14 AM

Так бы и сказали что это веб прокси сервер. А IMAP/POP3-прокси сервер в нагрузку идет? IMAP/POP3 с панельными как взаимодействует? Честно скажу не знаю может для вебсервера это проксирование работает замечательно, но у нас уже все нормальные провайдеры от использования прокси-серверов отказались (Squid как правило), так как при больших нагрузках загрузка страниц происходит очень медленно. Тут же не понятно... в памяти все хранит? И сколько ж ему памяти тогда надо? Как правило думаю nginx реально рулит для какого то отдельного сайта (одного на сервере или 2-х,3-х и т.д. серверах) с огромной посещаемостью. И все же прокси - это кэш. Можете озвучить конкретные цифры по использованию памяти, процессора, ускорению загрузки страниц и т.п.?


RE: ispCP & nginx - data-stream_ru - 02-27-2010 10:56 AM

> Так бы и сказали что это веб прокси сервер

Бля, а линк на яндекс вам не скинуть?

Опять же вы ни фига не поняли.
Его моржно загнать в режим прокси. И выиграть 3-10% мощности.
Его можно загнать в режитм обработки сьтатики и выиграть 30% мощности. Ну примерно. На среднем сайте который отдаёт скрипты и камртинки.

Его можно загнать в режим отдачи php-cgi. И выиграть 80% мощности.

Его можно установить ваще без апача и выиграть 200%-400% мощности.

Всё зависит от ваших рук! Ну и конечно ваших целей и задач. Кое где такое решение просто невозможно. Например на комерческих хостингах, где надо обеспечить совместимость .htaccess
> . А IMAP/POP3-прокси сервер в нагрузку идет?

А вы это о чём?
Как имап протоколы валияют на скрость отдачи страниц по http?

Думаю кто то их нас двоих просто ламер Sad
Извините, дальше ответы просто приостановил.
Как и чтение ваших постов.
Когда освоите основы линукса, приходите, поговорим.


RE: ispCP & nginx - marchaos - 02-27-2010 11:03 AM

nginx [engine x] — это HTTP-сервер и почтовый прокси-сервер. http://sysoev.ru/nginx/
Имелось ввиду нафик он там нужен этот почтовый и не мешает ли он уже работающим IMAP/POP3. 80% мощности наверно это то что нужно. Нельзя перегибать палку в ущерб работоспособности сайтов. Отказ от .htaccess это чревато.
(02-27-2010 10:56 AM)data-stream_ru Wrote:  Думаю кто то их нас двоих просто ламер Sad
Извините, дальше ответы просто приостановил.
Как и чтение ваших постов.
Когда освоите основы линукса, приходите, поговорим.

Да нет спасибо, думаю не понадобится. Это уже не входит в наши пририотеты.


RE: ispCP & nginx - data-stream_ru - 02-27-2010 11:57 PM

Как скомпилишь так и будет. Хошь с SSL, Хошь без SSL.
Я почту не использовал, и даже только сейчас вспомнил что там это есть. Почта на хрен не нужна.

> Отказ от .htaccess это чревато

Фишка в том, что у nginx свой модуль реврайта и есть готовые заморочки для всех используемых двигов типа джомлы и прочего.
Только это не совместимо с апачевским.
Поэтому и пришлось передавать обработку статичных html апачу, так же как и корней папок.

На бесплатном хостинге можно сказать людям "да пошли вы нахрен со своими реврайтами. У кого джомла, кидайте свои установки, включим в настройку. А ваще переходите на наш платный хостинг там реврайты апачевские работают" Smile

На счёти ламера я вчера перегнул, извините, пьян был слегонца. Буржуи нервы совсем накалили.
Итак, обещенные конфиги думаю доведу на днях, если буржуи на флейм силы оттягивать прекратят.
Скажу лишь, что в апач я добавил mod_rpaf это необходимо для передачи истинных ипов между nginx и индейцем.
Возник конфликт между mod_rpaf и mod_proxy
Выключил последний, т.к. обратное проксирование реализовал через nginx
Это иногда бывает надо.
Например, есть два сайта scanerlink.ru и scanerlink.info
Контент почти одинаков, но в зависимости от домена несколько меняется скриптами.
Всё сделано на одной папке, но есть условия.
Так же forum.veterinars.ru включён в Яку как отдельный сайт. А между тем, это лишь часть http://www.veterinars.ru/forum.htm
Вот так я обманываю тындекс.

nginx я компелил с поддержкой SSL повесив на основной порт 443.
Апач SSL перекинул на порт 444.
SSL использую только для панели, но по требованию некоторым пользователям можно включить.
Кстати, XOOPS у меня на php-cgi отказался работать.
Пришлось так же полностью передать его апачу.
Цуко, он жрёт дофига. Если бы не он речь бы шла не о 80% выигрыша а о 100%

Как вы потом увидите, связка весьма гибка и можно настраивать каждый сайт отдельно. Мона и вовсе сделать балансировку и разбрасывать входящие по разным физическим серверам. Но это уже не тема проекта.
Лано, хрен с вами.
Вот вам для затравки пока сырые конфиги.

Мастер конфиг нгинкса для панели.

/usr/local/nginx/conf/nginx.conf
PHP Code:
# nginx config generation script.
# Written by Nikolay Yatsyshyn (koffu@ukr.net) for ispcp project.
# autogenerated as /usr/local/nginx/conf/nginx.conf file at Fri Feb 12 18:10:53 2010

user  apache
worker_processes  5;

error_log  /var/log/nginx/error.log info;
pid /var/run/nginx.pid;

worker_rlimit_nofile  8192;

events {
worker_connections  1024;
use 
epoll;
}

http {

    
#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

#Limits conn/rate
limit_conn_log_level warn;
limit_zone conn $binary_remote_addr 10m;

limit_req_zone $binary_remote_addr zone=mainpage:10m rate=15r/s;
limit_req_zone $binary_remote_addr zone=2proxy:10m rate=30r/s;

#General
access_log /var/log/nginx/access.log;
server_names_hash_max_size 2048;
ignore_invalid_headers on;
recursive_error_pages on;
sendfile on;
server_tokens off;

#TCP
tcp_nodelay on;
tcp_nopush on;

#MIME
include    mime.types;
default_type  application/octet-stream;

#Timeouts
keepalive_timeout  5 5;
client_body_timeout 15;
client_header_timeout 15;
send_timeout 15;
reset_timedout_connection on;

#Compressing
gzip on;
gzip_comp_level 5;
gzip_http_version 1.0;
gzip_vary on;
gzip_min_length  1024;
gzip_buffers  16 8k;
gzip_proxied any;
gzip_types text/plain text/css application/x-httpd-php application/x-javascript application/xml;


#Size limits
client_body_buffer_size 256k;
client_max_body_size 48m;
large_client_header_buffers 8 16k;

#Proxy
proxy_send_timeout   90;
proxy_read_timeout   90;
proxy_buffer_size    64k;
proxy_buffers     64 256k;
proxy_buffering on;
proxy_cache_valid 1m;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_connect_timeout 120s;
proxy_redirect     off;






# ---------- Host main.data-stream.ru ----------
    
server {

        
#charset utf-8;

access_log /var/log/nginx/main.data-stream.ru-access.log;
error_log  /var/log/nginx/main.data-stream.log warn;

listen    81;
server_name  main.data-stream.ru www.main.data-stream.ru;

        
error_page  401              /errors/401.html;
        
error_page  403              /errors/403.html;
        
error_page  404              /errors/404.html;
        
error_page  500              /errors/500.html;
        
error_page  503              /errors/503.html;

        
# redirect server error pages to the static page /50x.html
        #
        
error_page   504  /50x.html;
        
location = /50x.html {
            
root   html;
        }

location / {
    
root   /var/www/ispcp/gui/;
    
index index.php;
    }

        
location ~ \.(pl|cgi)$ {
            
proxy_pass   http://127.0.0.1:80;
            
proxy_redirect     off;
            
proxy_set_header Host $host;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        
location ^~ /webmail {
        
alias   /var/www/ispcp/gui/tools/webmail/;
    
expires                     epoch;
         
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;

            include        /
usr/local/nginx/conf/fastcgi_params;
       }

        
location ^~ /failmanager {
        
alias   /var/www/ispcp/gui/tools/failmanager/;
    
expires                     epoch;
        
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;

            include        /
usr/local/nginx/conf/fastcgi_params;
       }

        
location ^~ /ftp {
        
alias   /var/www/ispcp/gui/tools/ftp/;
index index.php
    expires                     epoch
;
        
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;

            include        /
usr/local/nginx/conf/fastcgi_params;
       }


location ^~ /pma {
alias   /var/www/ispcp/gui/tools/pma/;
#root /var/www/ispcp/gui/tools/;
    
expires                     epoch;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
#           fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;

        
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;


            include        /
usr/local/nginx/conf/fastcgi_params;

    }

        
location ~ /\.ht {
            
deny  all;
        }


location ~* \.(gif|jpg|jpeg|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|pdf|swf|txt|xls|xcf|iso) {
root   /var/www/ispcp/gui/;
            
expires 10d;
#root   /var/www/html/;
}


        
location ~ (\.php|/)$ {
#            fastcgi_pass   127.0.0.1:8888;
    
expires                     epoch;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
#           fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;

        
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/$fastcgi_script_name;


            include        /
usr/local/nginx/conf/fastcgi_params;
        }

location /check_sys/ {
    
auth_basic "Admin Zone";
#    auth_basic_user_file /var/www/check_sys/.htpasswd;
root   /var/www/;
       
index  index.html;
}

location ^~ /stats {
root /var/www/awstats/;
            
proxy_pass   http://78.46.102.101:80;
            
proxy_redirect     off;
            
proxy_set_header Host $host;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

# ---------- Host main.data-stream.ru SSL ----------

    
server {


access_log /var/log/nginx/main.data-stream.ru-access.log;
error_log  /var/log/nginx/main.data-stream.log warn;

listen    443;

      
keepalive_timeout    70;

        
ssl                  on;
        
ssl_protocols        SSLv3 TLSv1;
        
ssl_ciphers          AES128-SHA:AES256-SHA:RC4-SHA:DES-CBC3-SHA:RC4-MD5;
        
ssl_certificate      /etc/pki/tls/certs/localhost.crt;
        
ssl_certificate_key  /etc/pki/tls/private/localhost.key;
        
ssl_session_cache    shared:SSL:10m;
        
ssl_session_timeout  10m;

server_name  main.data-stream.ru www.main.data-stream.ru;

        
error_page  401              /errors/401.html;
        
error_page  403              /errors/403.html;
        
error_page  404              /errors/404.html;
        
error_page  500              /errors/500.html;
        
error_page  503              /errors/503.html;

        
# redirect server error pages to the static page /50x.html
        #
        
error_page   504  /50x.html;
        
location = /50x.html {
            
root   html;
        }

location / {
    
root   /var/www/ispcp/gui/;
    
index index.php;
    }

        
location ~ \.(pl|cgi)$ {
            
proxy_pass   http://127.0.0.1:444;
            
proxy_redirect     off;
            
proxy_set_header Host $host;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        
location ^~ /webmail {
        
alias   /var/www/ispcp/gui/tools/webmail/;
    
expires                     epoch;
         
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;

            include        /
usr/local/nginx/conf/fastcgi_params;
       }

        
location ^~ /failmanager {
        
alias   /var/www/ispcp/gui/tools/failmanager/;
    
expires                     epoch;
        
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;

            include        /
usr/local/nginx/conf/fastcgi_params;
       }

        
location ^~ /ftp {
        
alias   /var/www/ispcp/gui/tools/ftp/;
index index.php
    expires                     epoch
;
        
fastcgi_read_timeout        60;
        
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;

            include        /
usr/local/nginx/conf/fastcgi_params;
       }


location ^~ /pma {
    
alias   /var/www/ispcp/gui/tools/pma/;
    
expires                     epoch;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
            
fastcgi_read_timeout        60;
            
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/tools/$fastcgi_script_name;


            include        /
usr/local/nginx/conf/fastcgi_params;

    }

        
location ~ /\.ht {
            
deny  all;
        }


location ~* \.(gif|jpg|jpeg|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|pdf|swf|txt|xls|xcf|iso) {
    
root   /var/www/ispcp/gui/;
            
expires 10d;

}


        
location ~ (\.php|/)$ {

    
expires                     epoch;

            
fastcgi_pass   unix:/var/run/fastcgi/master;
            
fastcgi_index  index.php;
            
fastcgi_read_timeout        60;
            
fastcgi_send_timeout        60;
        
fastcgi_intercept_errors     on;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/ispcp/gui/$fastcgi_script_name;


            include        /
usr/local/nginx/conf/fastcgi_params;
        }

location /check_sys/ {
    
auth_basic "Admin Zone";
#    auth_basic_user_file /var/www/check_sys/.htpasswd;
    
root   /var/www/;
       
index  index.html;
}

location ^~ /stats {
root /var/www/awstats/;
            
proxy_pass   http://78.46.102.101:444;
            
proxy_redirect     off;
            
proxy_set_header Host $host;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}



include 
"/usr/local/nginx/conf/vhosts.conf";



Полная обработка всех прилад панели. всё делает nginx без апача.
Думаю копирайт надо чуток подредактировать, если аффтар не против Wink
Конфиг для виртуальных хостов будет позже.

На что здесь обратить внимание. Я зафакался с подстановками и тупо скопировал всю папку ispcp/gui/errordocs в папку ispcp/gui/errors
Остальное стандартно.
Конфиг ФастЦГИ
/etc/php-fpm.conf
PHP Code:
<?xml version="1.0" ?>
<configuration>

    All relative paths in this config are relative to php's install prefix

    <section name="global_options">

        Pid file
        <value name="pid_file">/var/run/php-fpm.pid</value>

        Error log file
        <value name="error_log">/var/log/php-fpm.log</value>

        Log level
        <value name="log_level">notice</value>

        When this amount of php processes exited with SIGSEGV or SIGBUS ...
        <value name="emergency_restart_threshold">10</value>

        ... in a less than this interval of time, a graceful restart will be initiated.
        Useful to work around accidental curruptions in accelerator's shared memory.
        <value name="emergency_restart_interval">1m</value>

        Time limit on waiting child's reaction on signals from master
        <value name="process_control_timeout">15s</value>

        Set to 'no' to debug fpm
        <value name="daemonize">yes</value>

    </section>

    <workers>

        <section name="pool">

            Name of pool. Used in logs and stats.
            <value name="name">default</value>

            Address to accept fastcgi requests on.
            Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/var/run/fastcgi/sock'
            <value name="listen_address">/var/run/fastcgi/sock</value>

            <value name="listen_options">

                Set listen(2) backlog
                <value name="backlog">-1</value>

                Set permissions for unix socket, if one used.
                In Linux read/write permissions must be set in order to allow connections from web server.
                Many BSD-derrived systems allow connections regardless of permissions.
                <value name="owner">apache</value>
                <value name="group">apache</value>
                <value name="mode">0666</value>
            </value>

            Additional php.ini defines, specific to this pool of workers.
            <value name="php_defines">
        <!--        <value name="sendmail_path">/usr/sbin/sendmail -t -i</value>        -->
        <!--        <value name="display_errors">0</value>                                -->
            </value>

            Unix user of processes
            <value name="user">apache</value>        

            Unix group of processes
            <value name="group">apache</value>

            Process manager settings
            <value name="pm">

                Sets style of controling worker process count.
                Valid values are 'static' and 'apache-like'
                <value name="style">apache-like</value>

                Sets the limit on the number of simultaneous requests that will be served.
                Equivalent to Apache MaxClients directive.
                Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
                Used with any pm_style.
                <value name="max_children">35</value>

                Settings group for 'apache-like' pm style
                <value name="apache_like">

                    Sets the number of server processes created on startup.
                    Used only when 'apache-like' pm_style is selected
                    <value name="StartServers">2</value>

                    Sets the desired minimum number of idle server processes.
                    Used only when 'apache-like' pm_style is selected
                    <value name="MinSpareServers">1</value>

                    Sets the desired maximum number of idle server processes.
                    Used only when 'apache-like' pm_style is selected
                    <value name="MaxSpareServers">10</value>

                </value>

            </value>

            The timeout (in seconds) for serving a single request after which the worker process will be terminated
            Should be used when 'max_execution_time' ini option does not stop script execution for some reason
            '0s' means 'off'
            <value name="request_terminate_timeout">0s</value>

            The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
            '0s' means 'off'
            <value name="request_slowlog_timeout">0s</value>

            The log file for slow requests
            <value name="slowlog">/var/log/slow.log</value>

            Set open file desc rlimit
            <value name="rlimit_files">1024</value>

            Set max core size rlimit
            <value name="rlimit_core">0</value>

            Chroot to this directory at the start, absolute path /var/www/ispcp/gui
            <value name="chroot"></value>

            Chdir to this directory at the start, absolute path
            <value name="chdir"></value>

            Redirect workers' stdout and stderr into main error log.
            If not set, they will be redirected to /dev/null, according to FastCGI specs
            <value name="catch_workers_output">yes</value>

            How much requests each process should execute before respawn.
            Useful to work around memory leaks in 3rd party libraries.
            For endless request processing please specify 0
            Equivalent to PHP_FCGI_MAX_REQUESTS
            <value name="max_requests">500</value>

            Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
            Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
            Makes sense only with AF_INET listening socket.
            <value name="allowed_clients">127.0.0.1</value>

            Pass environment variables like LD_LIBRARY_PATH
            All $VARIABLEs are taken from current environment
            <value name="environment">
                <value name="HOSTNAME">$HOSTNAME</value>
                <value name="PATH">/var/www/virtual</value>
                <value name="TMP">/var/tmp</value>
                <value name="TMPDIR">/var/tmp</value>
                <value name="TEMP">/var/tmp</value>
                <value name="OSTYPE">$OSTYPE</value>
                <value name="MACHTYPE">$MACHTYPE</value>
                <value name="MALLOC_CHECK_">2</value>
            </value>

        </section>






        <section name="pool">

            <value name="name">vu2000</value>
            <value name="listen_address">/var/run/fastcgi/master</value>
            <value name="listen_options">
                <value name="backlog">-1</value>
                <value name="owner">apache</value>
                <value name="group">apache</value>
                <value name="mode">0666</value>
            </value>
            <value name="php_defines">
                <value name="sendmail_path">/usr/sbin/sendmail -t -i</value>        
                <value name="display_errors">0</value>                                
            </value>

            <value name="user">vu2000</value>        
            <value name="group">vu2000</value>

            <value name="pm">

                <value name="style">apache-like</value>
                <value name="max_children">5</value>

                <value name="apache_like">
                    <value name="StartServers">2</value>
                    <value name="MinSpareServers">1</value>
                    <value name="MaxSpareServers">5</value>

                </value>

            </value>

            <value name="request_terminate_timeout">0s</value>
            <value name="request_slowlog_timeout">0s</value>

            <value name="slowlog">/var/log/slow.log</value>

            <value name="rlimit_files">1024</value>

            <value name="rlimit_core">0</value>

            <value name="chroot"></value>
            <value name="chdir"></value>

            <value name="catch_workers_output">yes</value>

            <value name="max_requests">100</value>

            <value name="allowed_clients">78.46.102.101</value>

            <value name="environment">
                <value name="HOSTNAME">$HOSTNAME</value>
                <value name="PATH">/var/www/ispcp/gui/:/etc/ispcp/:/var/run/ispcp.lock:/proc/:/bin/df:/bin/mount:/var/log/rkhunter.log:/var/log/chkrootkit.log:/usr/share/pear/:/var/www/virtual/</value>
                <value name="TMP">/var/www/ispcp/gui/phptmp</value>
                <value name="TMPDIR">/var/www/ispcp/gui/phptmp</value>
                <value name="TEMP">/var/www/ispcp/gui/phptmp</value>
                <value name="OSTYPE">$OSTYPE</value>
                <value name="MACHTYPE">$MACHTYPE</value>
                <value name="MALLOC_CHECK_">2</value>
            </value>

        </section>

        <section name="pool">

            <value name="name">vu2002</value>

...следующий вирт хост....


        </section>

    </workers>

</configuration> 

На что тут обращаем внимание

1. Сокеты создаются для каждого клиенткого юзернаме. Это рекомендация по стабильности. И не надо мне грить, что весь мускуль работает через один сокет со всеми клиентами. Он ващет через порты работает в основном.
Папка сокетов должна существовать и быть доступной для записи.

2. Доступ к сокету осуществляется с имеющегося юзер нейм и юзер групп. Тот же юзернейм используется и nginx.
Управление скриптами осуществляется из под юзера созданного панелью vu2000? vu 2001 и т.д.

3. Пул default создан для всех, кто не вошёл в другие пулы.
Пул vu2000 Собственно панель.
Далее по каждому юзеру (не домену!)

4. Интересен вариант с Параметром
<value name="chroot"></value>
Здесь мона зацеашрутить каждого юзера на его папку.
Тогда в конфигах nginx-а надо указывать относительные пути для виртуальных доменов!!!
Зацеашрутить панель не получитсо.
Всех юзеров можно, актуально для бесплатных хостингов. Но будут проблемы например при доступе к /usr/share/pear/

5. Апачевский CGI-wrapper /var/www/fcgi с отдельными настройками php не работает!
Переменные окружения можно переназначить в секции
PHP Code:
<value name="environment"

Но это переменные окружения, а не переменные из php.ini !!!

Я ещё работаю над этим.


RE: ispCP & nginx - data-stream_ru - 02-28-2010 01:30 AM

Ах да, для дебьянов юзер сокетов и Соответственно nginx будет www-data или www или что у вас там ведает апачем.
Можно и отдельного юзера nginx создать, если ни лень. Мне лень.


RE: ispCP & nginx - SolarW - 02-28-2010 09:33 AM

(02-27-2010 09:05 AM)data-stream_ru Wrote:  > Скачал подготовленную авторами виртуалку под Вмварь - дык однако летает.
Вот в этой виртуалке похоже реализована максимальная оптимизация LAMP'а.
nginx, zend, eaccelerator и прочее.

Поподробнее плиз, это с чем едят и какие там принципы взаимодействия.
Сильно подробно не смогу, ибо вникаю в эти вопросы на уровне просто пользователя.
Но вкратце примерно так:
Тут можно скачать образ виртуальной машины максимально оптимизированной с точки зрения авторов под достаточно сильно ресурсоемкую CMS (273 метра, пойдет под любой Vmware, например VMware Player)
Changelog
Документация в которой авторы описывают оптимальную с их точки зрения систему которая собственно и реализована в виртуалке.
На закуску Smile для любителей CentOS'а rpm'ка позволяющая после установки получить максимально производительную с точки зрения авторов систему на которой будет работать Bitrix.

Ну и сам Bitrix хоть и в режиме демо-версии рекомендую поставить как инструмент позволяющий померить производительность хостинга - очень чудный в него для этого инструмент встроен.


RE: ispCP & nginx - koffu - 03-01-2010 06:28 AM

По поводу копирайта автор конечно-же не против, просто дополняем список людей участвующих в проекте. Интересные идеи получаются.

Ох и чешуться-же у меня руки собрать это всё добро на генте Big Grin


RE: ispCP & nginx - server801 - 03-01-2010 06:38 AM

лучше забей.быстрее фришки нету пока в том исполнении.да и похожи они чем то.я от генту пакаджи ставил-подходят Smile