ПРОЕКТЫ 


  АРХИВ 


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: Правильна ли конф игурация?



Serguei V. Melekhov пишет:
Igor Sysoev пишет:
On Sat, Dec 20, 2008 at 03:48:07PM +0300, Serguei V. Melekhov wrote:

Хотел спросить верно ли всё делаю. Есть сайт со страницами пользователей где в бэкенде стоит апач


<VirtualHost xx.xx.xx.xx:8087>
ServerName name.domain.ru
DocumentRoot /var/www/name.domain.ru/vnames
RewriteEngine on
RewriteRule ^(.*)$ /var/www/name.domain.ru/vnames/htdocs/script.php?user=%{HTTP_HOST}&url=$1 [L]
Options FollowSymLinks
</VirtualHost>


хочу заменить это на связку ngnix + fastcgi где бэкенд вообще другая машина для чего делаю следующее


server {
       listen       80;
       server_name  *.domain.ru;
       charset windows-1251;

       access_log  off;

       error_page   500 502 503 504  /50x.html;
       location = /50x.html {
               root   /usr/local/nginx/html;
       }
error_page 404 = /404.php; location / {
                 fastcgi_pass backend:9090;
           rewrite ^(.*)$ ?user=$host&url=$1  last;
                     fastcgi_connect_timeout 30;
           fastcgi_send_timeout 300;
           fastcgi_read_timeout 300;
fastcgi_param SCRIPT_FILENAME /var/www/name.domain.ru/vnames/htdocs/script.php;
           fastcgi_ignore_client_abort on;
             fastcgi_param  DOCUMENT_ROOT           $document_root;
fastcgi_param PATH_TRANSLATED /var/www/name.domain.ru/vnames/htdocs/script.php; fastcgi_param QUERY_STRING $query_string;
           fastcgi_param  REMOTE_ADDR        $remote_addr;
             fastcgi_param  REQUEST_METHOD     $request_method;
           fastcgi_param  CONTENT_TYPE       $content_type;
           fastcgi_param  CONTENT_LENGTH     $content_length;
             fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
           fastcgi_param  REQUEST_URI        $request_uri;
           fastcgi_param  DOCUMENT_URI       $document_uri;
           fastcgi_param  SERVER_PROTOCOL    $server_protocol;
           fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
           fastcgi_param  REMOTE_PORT        $remote_port;
           fastcgi_param  SERVER_ADDR        $server_addr;
           fastcgi_param  SERVER_PORT        $server_port;
           fastcgi_param  SERVER_NAME        $server_name;
           fastcgi_param  HTTP_X_REAL_IP     $remote_addr;
                        fastcgi_buffer_size 4k;
           fastcgi_buffers     16  32k;
       }
   }

Вопрос всё ли верно сделано? Есть ли более правильные способы?

rewrite не нужен:

            rewrite ^(.*)$ ?user=$host&url=$1  last;

а нужно передавать это прямо в QUERY_STRING:

fastcgi_param QUERY_STRING user=$host&url=$request_uri;

И ещё, вот это:

error_page 404 = /404.php; в данной конфигурации бессмысленно.


Игорь,

А как передать еще и данные из query_string в данном примере?

fastcgi_param QUERY_STRING user=$host&url=$request_uri$query_string; ????????
так?








Проблема решена. Дело в том, что ngnix request_uri передает вместе с / , в апаче реврайт RewriteRule ^(.*)$ /var/www/name.domain.ru/vnames/htdocs/script.php?user=%{HTTP_HOST}&url=$1 в качестве url передавал без /

извините за беспокойство.




 




Copyright © Lexa Software, 1996-2009.