proxy pass - пропадают аргументы

green nginx-forum на nginx.us
Ср Фев 23 02:31:03 MSK 2011


Когда делаю что-то подобное:

location ~ ^/test(/.*\.php)$ {
    proxy_pass http://cgi$1;
}

То в запросе не передаются аргументы,
т.е. запрос:
http://server/test/xxx.php?param
преобразуется в:
http://cgi/xxx.php
(без аргументов)

Если же делать:

location ~ \.php$ {
    rewrite ^/test(/.*\.php)$ $1 break; # без него тоже
передаётся, но необрезанное
    proxy_pass http://cgi;
}

То всё передаётся. В документации
ничего вроде не нашёл про это, зато там
написано, что если указывать proxy_pass без
uri, то ему передастся запрос as-is, без
сокращения слешей и т.п.
Это баг или фича? И что меньшее зло - rewrite
или добавлять $is_args$args в proxy_pass?

Posted at Nginx Forum: http://forum.nginx.org/read.php?21,177602,177602#msg-177602




Подробная информация о списке рассылки nginx-ru