Nginx不能正常反向代理目标网站

Nginx不能正常反向代理目标网站

dkm
dkm
2023-06-13 / 0 评论 / 17 阅读 / 正在检测是否收录...

很多情况下会遇到反向代理目标网站,由于目标网站的设置,反向代理不成功,需要在配置文件中间写入以下参数
设置自定义Host以及传递真实客户端IP地址到服务器

Nginx的虚拟服务器功能是通过虚拟主机的Host名称区分网站与服务的,所以会将网站与虚拟Host进行绑定,通过请求的Host区分访问的是哪个网站,当反向代理的站点不设置自定义Host,那么这个Nginx服务器反向代理的时候是传递的客户端请求反向代理服务器的Host到被反向代理的网站;又因为被反向代理的服务器没有这个主机名,所以会造成网站无法正常访问;因此需要在Nginx内设置一个自定义Host,在访问到这个反向代理的Nginx虚拟服务器时,会把传递到被代理网站的Host名称改为自定义的Host名称,从而实现不同虚拟主机名访问同一个网站

Nginx还有一个重要的参数就是请求IP地址,当服务器不传递客户端真实IP地址时,那么所有的客户端请求反向代理的服务器时,对于被代理网站来讲,所有客户端请求的IP地址都为反向代理服务器的IP地址,不为客户端IP地址;假设服务器设置单IP地址访问数量限制时,反向代理服务器在高并发访问的情况下被代理网站服务器限制访问,或者禁用访问权限,导致反向代理服务器无法正常访问。

配置文件写法

  server {
    listen       80;
    server_name  virtual_machine_name;

    location / {
        proxy_pass        proxy_web_pass;
        proxy_set_header  X-Real-IP $remote_addr;
        proxy_set_header  Host proxy_virtual_name;
    }
}
0

评论

博主关闭了所有页面的评论