为什么这种动态Nginx代理配置不起作用?

为什么这种动态Nginx代理配置不起作用?,nginx,proxy,Nginx,Proxy,我有一个nginx配置,如下所示: location /textproxy { proxy_pass http://$arg_url; proxy_connect_timeout 1s; proxy_redirect off; proxy_hide_header Content-Type; proxy_hide_header Content-Disposition; add_header Content-Type "text/plain"; proxy_set_hea

我有一个nginx配置,如下所示:

location /textproxy {
  proxy_pass http://$arg_url;
  proxy_connect_timeout 1s;
  proxy_redirect off;
  proxy_hide_header Content-Type;
  proxy_hide_header Content-Disposition;
  add_header Content-Type "text/plain";
  proxy_set_header Host $host;
}
其思想是,这将代理远程url,并将内容头重写为文本/纯文本

例如,我会称之为:

http://nx/textproxy?url=http://foo:50070/a/b/c?arg=abc:123
它将返回
http://foo:50070/a/b/c?arg=abc:123
,但用文本/普通标题包装

但这似乎不起作用,我经常遇到“无效上游端口”错误:

2013/07/23 19:05:10 [error] 25292#0: *963177 invalid port in upstream "http://foo:50070/a/b/c?arg=abc:123", client: xx.xxx.xx.xx, server: ~^(?<h>nx)(\..+|)$, request: "GET /textproxy?url=http://foo:50070/a/b/c?arg=abc:123 HTTP/1.1", host: "nx"
2013/07/23 19:05:10[错误]25292#0:*963177上游端口无效”http://foo:50070/a/b/c?arg=abc:123,客户端:xx.xxx.xx.xx,服务器:~^(?nx)(\..+)$,请求:“GET/textproxy?url=http://foo:50070/a/b/c?arg=abc:123 HTTP/1.1,“主机:“nx”

有什么想法吗?我很难找到答案。

直接在浏览器上打开url时,url是否正常工作?proxy\u pass http://$arg\u url;+?url=http://重复