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 - data-stream_ru - 03-02-2010 11:45 AM

Рано я начал конфиги заливать. И вообще протормозил - башня уже едет так, что пиво с водкой не помогает.

Значит новый кусок /etc/php-fpm.conf
пул панели
PHP Code:
        <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 --i</value>        
                <
value name="display_errors">0</value>                                
                <
value name="upload_tmp_dir">/var/www/ispcp/gui/phptmp/</value>
                <
value name="session.save_path">/var/www/ispcp/gui/phptmp/</value>
                <
value name="soap.wsdl_cache_dir">/var/www/ispcp/gui/phptmp/</value>
                <
value name="register_globals">Off</value>
                <
value name="upload_max_filesize">30M</value>
                <
value name="post_max_size">8M</value>
                <
value name="max_execution_time">60</value>
                <
value name="max_input_time">180</value>
                <
value name="memory_limit">128M</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">1</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
На что обращаем внимание.
Переопределяются общие настройки php.ini в разделе <value name="php_defines">
Для панели должны быть достаточно высокие лимиты, иначе будут траблы с phpmyadmin особенно при скачке бекапов.
Туда же можно прописать open_basedir для эстетов безопасности, но у меня при этой функции просто какие то мистические глюки возникают.

пул для виртуального сайта

PHP Code:
        <section name="pool">

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

            <
value name="listen_address">/var/run/fastcgi/data-stream.ru</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 --i</value>        
                <
value name="display_errors">0</value>
                <
value name="eaccelerator.enable">0</value>
                <
value name="upload_tmp_dir">/var/www/virtual/data-stream.ru/phptmp/</value>
                <
value name="session.save_path">/var/www/virtual/data-stream.ru/phptmp/</value>
                <
value name="soap.wsdl_cache_dir">/var/www/virtual/data-stream.ru/phptmp/</value>
                <
value name="register_globals">On</value>
                <
value name="upload_max_filesize">30M</value>
                <
value name="post_max_size">8M</value>
                <
value name="max_execution_time">30</value>
                <
value name="max_input_time">60</value>
                <
value name="memory_limit">64M</value>                                
                <
value name="disable_functions">show_sourcesystemshell_execpassthruexecshellsymlinkpopenproc_open</value>    
            </
value>

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

            <
value name="pm">

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

                <
value name="max_children">1</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.162.129</value>

            <
value name="environment">
                <
value name="HOSTNAME">$HOSTNAME</value>
                <
value name="PATH">/var/www/virtual/data-stream.ru/:/usr/share/pear/</value>
                <
value name="TMP">/var/www/virtual/data-stream.ru/phptmp/</value>
                <
value name="TMPDIR">/var/www/virtual/data-stream.ru/phptmp</value>
                <
value name="TEMP">/var/www/virtual/data-stream.ru/phptmp</value>
                <
value name="OSTYPE">$OSTYPE</value>
                <
value name="MACHTYPE">$MACHTYPE</value>
                <
value name="MALLOC_CHECK_">2</value>
            </
value>

        </
section
Уменьшены лимиты, прописаны все пути к темпам.
Выключен акселератор.
И так для каждого клиента.
Можно конечно извратится и сделать для каждого домена и поддомена отдельный пул, но это уже маразм ИМХО.
Да, кстати я уменьщил лимиты на дочерние процессы. Они незанятые и просто жруп память по чём зря.
Однако при нехватки, похоже тяжёлые сайты добирают лимитов из пула дефолт. Не уверен. Наверное, если делать всё грамотно и скриптами и шаблонами добавлять каждого нового пользователя панели, то дефолтный пул надо исключить. Щас же у меня просто все новые юзера определяются дефолтным пулом.

Так вот, в первоначальном решении от koffu мы это всё не используем. Ибо только проксируем и обрабатываем статику. Это я так, для затравочки, чего можно достичь, если подключить руки.

Теперь собсно виртуальные хосты nginx.
И так куски vhost.conf c различными настройками.

PHP Code:
# ---------- VirtualHost ropex.info ----------
server {
access_log /var/log/nginx/ropex.info-access.log;
error_log  /var/log/nginx/vhosts-error.log warn;

listen    81;
server_name  ropex.info www.ropex.info;
root   /var/www/virtual/ropex.info/htdocs/;


# uncomment location below to make nginx serve static files instead of Apache
# !WARNING!
# it will make the bandwidth accounting incorrect as these files won’t be logged!
location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|pdf|swf|txt|xls|xcf|iso) {
root   /var/www/virtual/ropex.info/htdocs/;
}

    
location ~ (\.php|/)$ {
    
limit_conn conn 5;
    
limit_req zone=2proxy burst=30;
            
fastcgi_pass   unix:/var/run/fastcgi/ropex.info;
            
fastcgi_index  index.php;
#           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/virtual/ropex.info/htdocs/$fastcgi_script_name;
        
fastcgi_param  QUERY_STRING     $query_string;
        
fastcgi_param  REQUEST_METHOD   $request_method;
        
fastcgi_param  CONTENT_TYPE     $content_type;
        
fastcgi_param  CONTENT_LENGTH   $content_length;
        
fastcgi_param  REDIRECT_STATUS    200;

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

    
location / {
    
proxy_pass   http://78.46.162.130:80;

       
proxy_set_header   Referer          $http_referer;
    
proxy_set_header   Host   $host;
    
proxy_set_header   X-Real-IP  $remote_addr;
    
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

    
limit_conn conn 5;
    
limit_req zone=mainpage burst=30;
    }
    
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;
    }
        
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;
        
location ^~ /errors {
        
root /var/www/virtual/ropex.info/;
        }

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

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

# ---------- End VirtualHost ropex.info ----------
[php]

Включена отдача статикиСобсно я думаю картинки надо включать по дефолту на nginxПроблем со статистикой быть не должнот.квсё как шло через 80-й порт так и идёт.

Первая страница отдаётся апачучтобы обработать .htaccess даже если это php.
Я думаюобработку php пока вкулючать не надоАпач начинает чесаться веселееесли с него сгрузить статику.

Обязательно надо жёсткор выставлять рут путь в самом началеУ nginx если в какой секции забудешьто у него на этот путь сразу своё мнениеКак и у апача впрочим.

Наверное в ошибке 504 надо прописать полный путь до nginxa... Посмотрите кто нить.

Клиентский алиасон же дополнительный домен.
[
php]
# ---------- VirtualHost cabtrans.ru ----------
server {
access_log /var/log/nginx/halyavnik.ru-access.log;
error_log  /var/log/nginx/vhosts-error.log warn;

listen    81;
server_name  cabtrans.ru www.cabtrans.ru;
root   /var/www/virtual/ropex.info/cabtrans.ru/htdocs/;

# uncomment location below to make nginx serve static files instead of Apache
# !WARNING!
# it will make the bandwidth accounting incorrect as these files won’t be logged!
location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|pdf|swf|txt|xls|xcf|iso) {
root   /var/www/virtual/ropex.info/cabtrans.ru/htdocs/;
}

    
location ~ (\.php|/)$ {
    
limit_conn conn 5;
    
limit_req zone=2proxy burst=30;
            
fastcgi_pass   unix:/var/run/fastcgi/ropex.info;
            
fastcgi_index  index.php;
#           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/virtual/ropex.info/cabtrans.ru/htdocs/$fastcgi_script_name;

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

    
location / {
    
proxy_pass   http://78.46.162.130:80;
         
proxy_set_header   Referer          $http_referer;
    
proxy_set_header   Host   $host;
    
proxy_set_header   X-Real-IP  $remote_addr;
    
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

    
limit_conn conn 5;
    
limit_req zone=mainpage burst=30;
    }
    
location ^~ /stats {
    
root /var/www/awstats/;
            
proxy_pass   http://78.46.162.130:80;
            
proxy_redirect     off;
            
proxy_set_header Host $host;
            
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
        
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;
        
location ^~ /errors {
        
root /var/www/virtual/cabtrans.ru/;
        }

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

        
location ~ /\.ht {
            
deny  all;
        }

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

# ---------- End VirtualHost cabtrans.ru ---------- 

Ну здесь примерно всё тож самое. Обращаем внимание на заголовки передаваемые при проксировании.
Так вот тут есть такая бяка, что при передачи первой странице апачу с обработкой других php-страниц nginx можно или сессию потерять или ещё чего.

Как уже заметил, в первоначальном варианте только проксирование.
Так вот при этом варианте, XOOPS у меня не заработал нормально. Хупс-секьюрити вопит, что теряется какой то заголовок. Хотя я всё что можно прописал.
XOOPS ваще д-мо редкое.

Пришлось перевести хупс как и многие другие сафты полностью на nginx.
Выглядит это почти так же
PHP Code:
# ---------- VirtualHost bull-doc.ru ----------
server {
access_log /var/log/nginx/bull-doc.ru-access.log;
error_log  /var/log/nginx/vhosts-error.log warn;

listen    81;
server_name  bull-doc.ru www.bull-doc.ru;
root   /var/www/virtual/bull-doc.ru/htdocs/;
# uncomment location below to make nginx serve static files instead of Apache
# !WARNING!
# it will make the bandwidth accounting incorrect as these files won’t be logged!
location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|pdf|swf|txt|xls|xcf|iso) {
root   /var/www/virtual/bull-doc.ru/htdocs/;
}

location ~ (\.php|/)$ {
limit_conn conn 5;
limit_req zone=2proxy burst=30;
            
fastcgi_pass   unix:/var/run/fastcgi/bull-doc.ru;
            
fastcgi_index  index.php;
           
fastcgi_param  SCRIPT_FILENAME  /var/www/virtual/bull-doc.ru/htdocs/$fastcgi_script_name;
        
fastcgi_param  QUERY_STRING     $query_string;
        
fastcgi_param  REQUEST_METHOD   $request_method;
        
fastcgi_param  CONTENT_TYPE     $content_type;
        
fastcgi_param  CONTENT_LENGTH   $content_length;
        
fastcgi_param  REDIRECT_STATUS    200;

        
fastcgi_param  HTTP_REFERER     $http_referer;

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

location / {

index index.php index.htm index.html index.shtml;
root   /var/www/virtual/bull-doc.ru/htdocs/;



#proxy_pass   http://78.46.162.129:80;
           
#proxy_set_header   Referer          $http_referer;
#proxy_set_header   Host   $host;
#proxy_set_header   X-Real-IP  $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#limit_conn conn 5;
#limit_req zone=mainpage burst=30;
}
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;
}
        
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;
        
location ^~ /errors {
        
root /var/www/virtual/bull-doc.ru/;
        }

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

        
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;
        }
}

# ---------- VirtualHost SubDomain dog100.bull-doc.ru ---------- 

Вроде работает.
Я так же добавил в файлы fastcgi_params и fastcgi.conf
такую строчку
fastcgi_param HTTP_REFERER $http_referer;
В оба одинаковую.

Ну а на следующем конaиге показано как разделить разные движки на одном сайте между апачем(с зендом) и php-fpm без зенда.

PHP Code:
# ---------- VirtualHost data-stream.ru ----------
server {
access_log /var/log/nginx/data-stream.ru-access.log;
error_log  /var/log/nginx/vhosts-error.log warn;
root   /var/www/virtual/data-stream.ru/htdocs/;

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

# uncomment location below to make nginx serve static files instead of Apache
# !WARNING!
# it will make the bandwidth accounting incorrect as these files won’t be logged!
location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|pdf|swf|txt|xls|xcf|iso) {
root   /var/www/virtual/data-stream.ru/htdocs/;
}

location ~ (\.php|/)$ {
limit_conn conn 5;
limit_req zone=2proxy burst=30;
#proxy_pass   http://78.46.162.129:80;

#proxy_set_header   Host   $host;
#proxy_set_header   X-Real-IP  $remote_addr;
#proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

            
fastcgi_pass   unix:/var/run/fastcgi/data-stream.ru;
            
fastcgi_index  index.php;
#           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

           
fastcgi_param  SCRIPT_FILENAME  /var/www/virtual/data-stream.ru/htdocs/$fastcgi_script_name;
        
fastcgi_param  QUERY_STRING     $query_string;
        
fastcgi_param  REQUEST_METHOD   $request_method;
        
fastcgi_param  CONTENT_TYPE     $content_type;
        
fastcgi_param  CONTENT_LENGTH   $content_length;
        
fastcgi_param  REDIRECT_STATUS    200;

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

#location /forum/(\.gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|​pdf|swf|txt|xls|xcf|iso) {
#root   /var/www/virtual/data-stream.ru/htdocs/forum/;
#}

#location /forum/(\.php|/)$ {
#limit_conn conn 5;
#limit_req zone=2proxy burst=30;

 #           fastcgi_pass   unix:/var/run/fastcgi/data-stream.ru;
  #          fastcgi_index  index.php;
#           fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

#           fastcgi_param  SCRIPT_FILENAME  /var/www/virtual/data-stream.ru/htdocs/$fastcgi_script_name;
#        fastcgi_param  QUERY_STRING     $query_string;
#        fastcgi_param  REQUEST_METHOD   $request_method;
#        fastcgi_param  CONTENT_TYPE     $content_type;
#        fastcgi_param  CONTENT_LENGTH   $content_length;
#        fastcgi_param  REDIRECT_STATUS    200;

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

location / {
root   /var/www/virtual/data-stream.ru/htdocs/;
index index.html;
}

location ^~ /partners/ {
proxy_pass   http://78.46.162.129:80;

proxy_set_header   Host   $host;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;

limit_conn conn 5;
limit_req zone=mainpage burst=30;
}
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;
}
        
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;
        
location ^~ /errors {
        
root /var/www/virtual/data-stream.ru/;
        }

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

        
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;
        }
}

# ---------- VirtualHost SubDomain design.data-stream.ru ---------- 

Папка /forum/ обрабатывается php-fpm, т.к. апач отказывается нормально обрабатывать phpBB в режиме фаст-сги.
Я бы вообще не советовал использовать апачевский mod_fcgid если ставить фаст-сги на php-fpm. Апачевский как то глючит несусветно. Лучне уш если идти до победного с nginx + php-fpm, то обрабатывать php апачем по старинке. Медленно но верно. У себя же я с оптимизацией пергнул мальца.

папка /paptners/ отдаётся апачу, т.к. там зендёный двиг стоит.
так, шот я не понял, кем у меня папка /forum/ обрабатываетсо...
Блин, а ведь работает сцуко...
Похоже этим location ~ (\.php|/)$
Включая индексный файл.
Здесь тупо scanerlink.info Проксируется на scanerlink.ru
# ---------- VirtualHost scanerlink.info ----------
server {
access_log /var/log/nginx/scanerlink.info.access.log;
error_log /var/log/nginx/vhosts-error.log warn;

listen 81;
server_name scanerlink.info http://www.scanerlink.info;
root /var/www/virtual/scanerlink.ru/htdocs/htdocs/;

# uncomment location below to make nginx serve static files instead of Apache
# !WARNING!
# it will make the bandwidth accounting incorrect as these files won’t be logged!
location ~* \.(gif|jpg|jpeg|png|wmv|avi|mpg|mpeg|mp4|js|css|bmp|csv|doc|epg|gif|ico|odj|mp3|​pdf|swf|txt|xls|xcf|iso) {
root /var/www/virtual/scanerlink.ru/htdocs/;
}

location ~ (\.php|/)$ {
limit_conn conn 5;
limit_req zone=2proxy burst=30;
fastcgi_pass unix:/var/run/fastcgi/scanerlink.ru;
fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_FILENAME /var/www/virtual/scanerlink.ru/htdocs/htdocs/$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param REDIRECT_STATUS 200;

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

location / {
proxy_pass http://78.46.162.129:80;
#proxy_pass http://127.0.0.1:80;

proxy_set_header Host scanerlink.ru;
proxy_set_header X-Real-IP 78.46.162.129;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;


limit_conn conn 5;
limit_req zone=mainpage burst=30;
}
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;
}
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;
location ^~ /errors {
root /var/www/virtual/scanerlink.ru/;
}

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

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;
}
}


# ---------- End VirtualHost scanerlink.info ----------
Однако всё же теряются какие то заголовки, скрипты изменения контекста ошибаются.
Хрен с ними, потом разбирусь.

Ну и собсно мне осталось у себя на серваке только подружить awstat с логами nginx и исправить мелкие глючки на каждом сайте ручками Sad
Единственно нерадующий момент, то что статистику Awstat приходится полностью отдавать апачу и лишь по одной причине - у nginx какой то глюк с раскордированием .htpasswd и .htgroup
Но можно и открыть статистику, не забыв запретить её индексацию через robots.txt и сайтмапы, а тоу вас получится сайт с кучей беков и писсимизация поисковиками.
В любом случае, это небольшой трафик, не важно кто это обрабатывает.

Можно ещё добавить как в основном файле Панели подстановки на
клиентские domain.tld/pma и на domain.tld/webmail
Но я поленился и ваще думаю что это не полезно когда всякие дети сканируют клиентские сайты в поисках уязвимух майадминов и почтовиков.
Выводы - глючно, хлопотно, но вкусно!

Если php-fpm будет включен в последующие стабле версии php, то будет всё намного интереснее. Разработчикам апача и зенда придётся с этим считаться. И многие глюки и трудности установки просто уйдут в небытие.

Кстати, там я линки на свои графики скидывал, так вот там по CPU stap-back идёт в связи с неиспользованностью ресурсов. Там гриновый AMDшка стоит. Так что процент показан не от максимальной частоты, а от текущей Wink

В общем то на этом этапе мона сформулировать техзадание уважаемому koffu по исправлению его скрипта первоначальной установки.

1. Не забываем про обработку "алиасов" в базе это таблица domain_aliasses
2. Доделываем обработку ошибок, австата и всего прочего. Перл не забываем жёстко и однозначно отдать апачу в каждом домене и поддомене.
3. Раскоменчиваем отдачу статики, выдрав оттуда html и shtml, под которыми прячется мод_реврайт.
4. Рутпуть в начале конфига.
5. php пока делаем в закоментированном виде - кому надо раскоментят. Всё php пока отдаём апачу.

Ну и следующим этапом рисуем шаблончики для папочки /etc/ispcp/nginx и ковыряем ноготком скрипты панели, чтоб у нас при каждом добавлении юзера или домена дописывался файл vhosts.conf. В идеале ещё php-fpm но только при создании нового юзера.

В идеале бы ещё погуглить и потестить на тему потери непонятных хедеров. Но сдаётся мне что теряются они апачем, т.к. передача от nginx к php-fpm идёт нормально.


RE: ispCP & nginx - data-stream_ru - 03-02-2010 12:45 PM

Да, кстати, всё что я написал тут есть глюк великий. Много раз пожалел, что ввязался в эту затею. Но не сейчас Smile
Так чито кто не умеет, лучше не беритесь.


RE: ispCP & nginx - data-stream_ru - 03-02-2010 01:47 PM

Фигня какая то. 404-я ошибка виртуальных хостов не обрабатываетсмя, если файл .php
Пишет внутреннюю ошибку fast-cgi.
А в конфиге панели всё нормуль обрабатывается...
Ну и бред.
По поводу добавления новых доменов, то ковырять надо файлики
engine/ispcp-dmn-mngr и engine/ispcp-als-mngr
Тупо скопировав функции по изменнию апачевских конфигов и обработки шаблонов? соотв изменив пару путей до конфига nginx.
Для знающих перл это не проблема. Для меня проблема.
И так уже и пиво не помогает на место мозги ставить.


RE: ispCP & nginx - data-stream_ru - 03-02-2010 03:01 PM

А для Awstat тупо делается замена папки домена

#LogFile="/var/log/httpd/bull-doc.ru-combined.log"
LogFile="/var/log/nginx/bull-doc.ru-access.log"

А можно сделать ещё проще - настроить Nginx на вливание слових логов в папку апача.
Формат совпадает. Логи доступа к телу апача уже не нужны, кроме ерорлогов.

Не забываем поправить шаблончик
/etc/ispcp/awstats/awstats.ispcp_tpl.conf
Шобы накормить юзеров логами идём в Файлик основного конфига панели и меняем
#APACHE_BACKUP_LOG_DIR = /var/log/httpd/backup
APACHE_BACKUP_LOG_DIR = /var/log/nginx/backup

#APACHE_USERS_LOG_DIR = /var/log/httpd/users
APACHE_USERS_LOG_DIR = /var/log/nginx

Должно работать...
Хотя нахрена юзерам дубли логов если они поставляются кроном раз в сутки я не понял. Токма для красовты.
Вот важный момент по передачи заголовков. Возможно у меня хупс из-за этого не пахал
Проверяйте кто нить сами, я уже опух. Всю рекламу с моих сайтов поснимали, пока я колупался Sad

nginx, apache, mod_rpaf и не правильное определение прокси
January 18th, 2009
No comments
http://unix-notes.ru/2009/01/18/nginx-apache-mod_rpaf-i-ne-pravilnoe-opredelenie-proksi/
Если вы используете такую связку, и в nginx присуствуют следующие директивы
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;

чтобы пробросить ip пользователя к apache, то некоторые скрипты, работающие под apache из-за заголовка X-Forwarded-For могут считать, что пользователь пришел через прокси. А это не желательно. В таком случае в nginx те два заголовка надо заменить на:
proxy_set_header Test $remote_addr;

а в конфиге mod_rpaf сделать так:
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1 внешние ип-ы
RPAFheader Test
Сижу, наслаждаюсь топами и графиками.
И куда теперь стока мощи девать... И так клиентов с гулькин поц было...
Вот только мелкие глючки настроение портят.
Ужасно ненравится, что у php-fpm нет мягкого рестатрта или релоада конфигов.
Скрипты на обработке соответственно валятся, если ручками чонить переделываеш.


RE: ispCP & nginx - data-stream_ru - 03-02-2010 09:49 PM

А ваще, если честно, слов пакостных очень много, по результатам.
Особенно про талантливость, но неадекватность аффтара нгинкса - Cысоева.
Многие траблы там из-за непримеримой войны "меньшивиков и большевиков". А юзера как всегда в опе.
Мог бы апач уже задвинуть в качестве запостного бэк-энда по совместимости, если бы захотел. Или уш точно выйти на второе место в мире, задвинув IIS. Но не хочет.

Умну опять испорчено настроение, и мне предстоит ругаться со многими рекламными биржами. Чую потреплют мне нервишки.
Короч, если ваша "насяльника" (как меня тут в приват поименовали) кому нагрубит или ещё чего скоропалительного учудит, прошу отнестись с пониманием. Ибо пьян буду. Чую буду Sad
Пьяный проспится - дурак никогда.


RE: ispCP & nginx - server801 - 03-03-2010 02:32 AM

аминь...


RE: ispCP & nginx - data-stream_ru - 03-03-2010 04:44 PM

Кажись ни чего не натворил лишнего Wink


RE: ispCP & nginx - data-stream_ru - 03-04-2010 03:18 AM

koffu
Совсем забыл!
Надо папку cgi-bin в алиасы загонять, чтобы nginx не искал её внутри htdocs

Что то вроде
location ^~ /cgi-bin {
alias /var/www/virtual/domain.tld/cgi-bin;
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;
}
И так для каждого виртуального домена.


RE: ispCP & nginx - data-stream_ru - 03-04-2010 04:59 PM

Я у себя перевесил апач на порт 8080 а nginx На 80.
Ибо слетала эта конструкция из iptables регулярно и в неизвестном направлении.
Не смотря на сохранённые настройки.

Для тестирования это подходит, но для работы постоянной видимо нет.

koffu, как успехи?


RE: ispCP & nginx - data-stream_ru - 03-04-2010 06:27 PM

Кста, ни кто не пробовал nginx с поддержкой перла?
А то умну свой тяжёлый сатик болтается на перле - http://www.veterinars.ru
Он конечно летает, ибо ему ни каких лимитов, но жрёт тож немерено. Хотя конечно меньше на порядок, чем Хупсы всякие.
Но когда на 10 тыщ страниц приходят поисковики то как то чуствуешь себя не уверенно...