Правильна ли конфигурация?

Serguei V. Melekhov kisulja2000 at mail.ru
Tue Dec 23 00:18:13 MSK 2008


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 передавал без /

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






More information about the nginx-ru mailing list