我正在尝试使用error_page,如下所示,以捕获错误,然后从外部URL中读取内容,并将其发送到客户端:
error_page 404 =404 @err404; location @err404 { proxy_pass http://www.myserver.com; }
这是在“服务器”指令。 我希望任何404被这个(它是) – 然后从http://www.myserver.com读取内容 – 并返回作为404的正文返回到客户端。
这几乎工作 – 但是当我尝试访问http://myserver/somenonexistingURL ,代理通过http://www.myserver.com/somenonexistingURL – 这似乎是无益的 – 有没有办法让它只是代理内容的确切我input了什么? 没有代理整个请求?
如果我放
error_page 404 http://backend
然后我得到一个30X的redirect(按照文档) – 这不是我想要的。
有任何想法吗?
文档: http : //wiki.nginx.org/HttpCoreModule#error_page和http://nginx.org/en/docs/http/ngx_http_core_module.html#error_page
这是什么对我有用:
error_page 404 =404 @err404; location @err404 { rewrite ^/(.*) / break; proxy_pass http://www.unsw.edu.au; }
这两个都会返回404作为http状态码,以及来自proxy_pass url的内容 – 但是没有附加任何path。