我无法通过Nginx代理请求到本地网络上运行的服务器。请求不会通过,最终会被请求者超时。
我试图调用一个json-rpc API(HyperHDR),它与请求软件(在Node.js上运行的Homebridge)设置的Content-Length头不兼容,所以我将Nginx设置为删除不兼容头的代理。
如果我直接从Docker容器内部和外部 curl 服务器,而不是通过Nginx,则连接可以工作。不知道是不是我的nginx.conf有问题?接收端的日志中没有任何内容,其他请求也是如此,所以看起来请求没有通过。我可以看到请求在被代理后(使用正确的代理URL)在Nginx日志中超时,所以请求确实到达了Nginx,但由于某种原因没有完全通过。
nginx.conf
events {}
http {
server {
listen 8080;
listen [::]:8080;
error_log /var/log/nginx/error.log debug;
location /json-rpc {
proxy_pass http://192.168.1.205:8090/json-rpc;
proxy_set_header Host $http_host;
}
}
}
Dockerfile
FROM nginx:latest
COPY nginx.conf /etc/nginx/conf.d/default.conf
我已经三次检查了proxy_pass
中指定的IP、端口和端点是正确的--调用它可以和上面提到的Curl一起工作。
1条答案
按热度按时间qq24tv8q1#
这个问题与
Connection
头有关。如this solution中所示清除它解决了问题。