atom feed11 messages in ru.sysoev.nginx-ruRe: Правильна ли конфигурация?
FromSent OnAttachments
AlexanderDec 18, 2008 3:48 pm 
Igor SysoevDec 18, 2008 11:17 pm 
AlexanderDec 19, 2008 3:03 am 
Igor SysoevDec 19, 2008 3:20 am 
Serguei V. MelekhovDec 20, 2008 4:48 am 
Igor SysoevDec 20, 2008 5:16 am 
Serguei V. MelekhovDec 20, 2008 5:34 am 
Serguei V. MelekhovDec 22, 2008 12:55 pm 
Serguei V. MelekhovDec 22, 2008 1:18 pm 
DmitryDec 22, 2008 1:21 pm 
Igor SysoevDec 23, 2008 12:19 am 
Subject:Re: Правильна ли конфигурация?
From:Serguei V. Melekhov (kisu@mail.ru)
Date:Dec 22, 2008 12:55:44 pm
List:ru.sysoev.nginx-ru

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;
???????? так?