Как в nginx только POST запросы перенаправлять на другой адрес?

Labutin

Новичок
Как в nginx только POST запросы перенаправлять на другой адрес?

Все запросы сейчас идут на fastcgi.

upstream backend {
server 127.0.0.1:8889;
server 127.0.0.1:8888;
}
server {
listen 80;

location ~* \.(phtml|php) {
root /home/www/htdocs;
fastcgi_pass backend;
....
}

Вот так я перенаправляю запрос в корень на каталог mydir (так нужно и это работает):
location / {
root /home/www/htdocs;
set $concat "$request_method?$args";
if ($concat = "GET?") {
rewrite ^/$ http://$host/mydir/ redirect;
}

Но вот никак не пойму, как мне POST запрос, приходящий на URL / перенаправить на другой сервер: http://localhost:81
Пробовал так внутри этого же location:
set $concat "$request_method?$args";
if ($request_method = "POST?") {
proxy_pass http://localhost:81/;
}
nginx говорит, что proxy_pass тут нельзя использовать :(
Что посоветуете в моем случае?

-~{}~ 02.11.07 21:41:

nginx версии 0.5.26
 

MiksIr

miksir@home:~$
делай редирект на внутренний (internal) локейшн, а в этом локейшене описывай уже проксирование
 

Labutin

Новичок
Пожалуйста, немного подробней опишите. В nginx я еще совсем новичок :)
 

MiksIr

miksir@home:~$
location / {
if ($request_method = "POST") {
rewrite ^(.*)$ /postlocation/$1 last;
}
}

location /postlocation/ {
internal;
proxy_pass ...;
}
 
Сверху