ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: POST пуст (whmcs)



On Tue, May 03, 2011 at 10:59:48AM +0400, Igor Sysoev wrote:
> On Sun, May 01, 2011 at 05:53:26AM -0400, nonethree wrote:
> > Поставил nginx admin, плагин для cPanel (набор
> > скриптов для генерации конфигов итд.). В
> > качестве фронтенда к apache.
> > 
> > Обнаружилась такая проблема, помогите
> > решить пожалуйста.
> > 
> > Воспроизводимость: Заказываем в whmcs
> > продукт -> переходим к странице выбора
> > оплаты -> жмём кнопку -> получаем пустую
> > страницу.
> > 
> > В логе строка:  - - [27/Apr/2011:19:42:02 +0700] "POST
> > /cart.php?a=add HTTP/1.1" 200 0 "http://www.domain.ru/cart.php"; [^]
> > "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.15)
> > Gecko/20110303 Firefox/3.6.15 WebMoney Advisor"
> > обратите внимание на размер, он
> > нулевой.
> > 
> > Конфиги:
> > server {
> >             listen   domain:80;
> >             server_name  domain.ru;
> > 
> >             access_log /usr/local/apache/domlogs/doman.ru combined;
> >                 error_log /var/log/nginx/vhost-error_log warn;
> > 
> >             location /  {
> >                         root   /home/user/public_html/billing;
> >                         index  index.html index.php;
> >             }
> > 
> >             location = /announcements {
> >                         rewrite ^  /announcements.php  last;
> >             }
> > 
> >             location /announcements/ {
> >                         rewrite 
> > ^/announcements/([0-9]+)/[A-Za-z0-9_-]+.html$ /announcements.php?id=$1
> > last;
> >             }
> > 
> >             location = /downloads {
> >                         rewrite ^  /downloads.php  last;
> >             }
> > 
> >             location /downloads/ {
> >                         rewrite ^/downloads/([0-9]+)/([^/]*)$
> > /downloads.php?action=displaycat&catid=$1 last;
> >             }
> >             location = /knowledgebase {
> >                         rewrite ^  /knowledgebase.php  last;
> >             }
> >             location /knowledgebase/ {
> >                         rewrite 
> > ^/knowledgebase/([0-9]+)/[A-Za-z0-9_-]+.html$
> > /knowledgebase.php?action=displayarticle&id=$1 last;
> >                         rewrite  ^/knowledgebase/([0-9]+)/([^/]*)$
> > /knowledgebase.php?action=displaycat&catid=$1 last;
> >             }
> > 
> >             # pass the PHP scripts to FastCGI server listening on
> > 127.0.0.1:9000
> >             #location ~ .php$ {
> >             #            fastcgi_pass 127.0.0.1:9000;
> >             #            fastcgi_index index.php;
> >             #            include /usr/local/nginx/conf/fastcgi_params;
> >             #            fastcgi_param SCRIPT_FILENAME
> > /xxx/xxx/xxx/public_html/$fastcgi_script_name;
> >             #}
> >             location ~ .php$ {
> >                         proxy_pass http://domain:8081;
> >                         include proxy.inc;
> >             }
> > 
> > 
> > }
> 
> Этот конфиг в будущем принесёт многия печали.
> Если же многия печали хочеться избежать, я бы рекомендовал что-то вроде: 
> 
>    upstream domain {
>         server domain:8081;
>    }
> 
>    server {
> 
>       ...
> 
>       location = /knowledgebase {
>           proxy_pass  http://domain/knowledgebase.php;
>           include     proxy.inc;
>       }
> 
>       location /knowledgebase/ {
> 
>           location ^/knowledgebase/([0-9]+)/[A-Za-z0-9_-]+.html$ {
>               proxy_pass  
> http://domain/knowledgebase.php?action=displayarticle&id=$1;
>               include     proxy.inc;
>           }
> 
>           location ^/knowledgebase/([0-9]+)/([^/]*)$ {
>               proxy_pass  
> http://domain/knowledgebase.php?action=displaycat&catid=$1
>               include     proxy.inc;
>           }
>       }
> 
>       ну и так далее. 
> 
> То есть, убираем все реврайты, убираем зависимости, локализуем обработку.

В данном случае можно и без описания upstream domain:

       location = /knowledgebase {
           proxy_pass  http://domain:8081/knowledgebase.php;
           include     proxy.inc;
       }


-- 
Igor Sysoev

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.