【发布时间】:2021-02-19 02:49:12
【问题描述】:
我有一个 Nginx 服务器,它将请求重定向到另一个外部站点。 位置配置如下:
location ~* ^\/h\/([a-zA-Z0-9.-]+)\/(.*) { proxy_connect_timeout 20s; set $remote_host $1; proxy_set_header Host $remote_host; proxy_pass http://$remote_host/$2;
所以,服务器收到如下请求:
http://localhost/h/test.com/testinguri.txt
代理通行证将是http://test.com/testinguri.txt
一切正常,直到我们使用两个下划线并且服务器将响应 502 :
curl -I http://localhost/h/test.com/testing_ur_i.txt
HTTP/1.1 502 错误网关 服务器:nginx/1.10.3 内容类型:文本/html 内容长度:173 连接:保持活动
调试模式的错误日志:
2020/11/05 00:00:11 [错误] 40859#40859: *66328156 上游从上游读取响应标头时过早关闭连接,客户端:****,服务器:_,请求:“GET /h /test.com/testing_ur_i.txt HTTP/1.1",上游:
请求在至少一秒后失败,因此不是超时问题。并且远程站点正常工作。 (出于安全原因,我通过test.com更改了真实域名)
谢谢
【问题讨论】:
-
如何检查远程站点是否正常工作?通过获取“distant.com/testing_ur_i.txt”?
标签: nginx