Hello Konstantin,
Friday, November 27, 2009, 11:17:02 PM, you wrote:
Здравствуйте.
Есть несколько апстримов, появилась необходимость выполнять некоторые
запросы на конкретном апстриме.
Пример запросов:
http://rpc.local/s1/munin.php
http://rpc.local/s2/munin.php
http://rpc.local/s3/munin.php
В голову пришел только такой конфиг, но не могу понять, как правильно
написать реврайты.
Проблема в том, что не могу избавиться от "s1, s2, s3" после того, как
запрос уходит в нужный локейшн.
конфиг:
upstream srv1 {
server 192.168.0.2:5500;
}
upstream srv2 {
server 192.168.0.3:5500;
}
upstream srv3 {
server 192.168.0.4:5500;
}
server {
listen 192.168.0.1:80;
server_name rpc.local;
allow 192.168.0.0/24;
deny all;
root /usr/local/www/rpc/;
location / {
return 404;
}
location ~ ^/s1/(.*\.php)$ {
fastcgi_pass srv1;
#вот так не работает :(
#fastcgi_param SCRIPT_FILENAME /usr/local/www/rpc/$1;
А если добавить
+ fastcgi_param SCRIPT_NAME /$1;
,
fastcgi_param SCRIPT_FILENAME
/usr/local/www/rpc/$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
location ~ ^/s2/(.*\.php)$ {
fastcgi_pass srv2;
fastcgi_param SCRIPT_FILENAME
/usr/local/www/rpc/$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
location ~ ^/s3/(.*\.php)$ {
fastcgi_pass srv3;
fastcgi_param SCRIPT_FILENAME
/usr/local/www/rpc/$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
}
nginx version: nginx/0.7.62
Спасибо!