Nginx返回400作为到外部URL的代理传递
我正在尝试在我的Nginx中设置一个路由,该路由将代理请求到外部https资源。我的配置如下所示:Nginx返回400作为到外部URL的代理传递,nginx,Nginx,我正在尝试在我的Nginx中设置一个路由,该路由将代理请求到外部https资源。我的配置如下所示: server { listen 443 ssl; server_name x.x.com; location / { resolver 8.8.8.8; proxy_pass https://y.y.com$request_uri; proxy_ssl_server_name on; } } 现在,每当我尝试调用U
server {
listen 443 ssl;
server_name x.x.com;
location / {
resolver 8.8.8.8;
proxy_pass https://y.y.com$request_uri;
proxy_ssl_server_name on;
}
}
现在,每当我尝试调用URL时,我会立即得到一个400
奇怪的是,在Nginx日志中,我一开始不会得到400的任何理由。仅在1分钟后,我将收到一条超时消息。(我的错误日志级别设置为info)
我的Nginx作为docker容器运行,使用Nginx:1.17对于遇到类似问题的任何人,我最后通过添加
proxy_set_header Host y.y.com;
proxy_set_header X-Forwarded-For $remote_addr;
出于某种原因,服务器不喜欢具有默认x.x.com主机头的请求,并以400拒绝了它,这可能来自服务器端的某些Web服务器配置
proxy_set_header Host y.y.com;
proxy_set_header X-Forwarded-For $remote_addr;