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

Igor Sysoev is at rambler-co.ru
Sat Dec 20 16:16:49 MSK 2008


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;       

в данной конфигурации бессмысленно.


-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list