首页 > 其他 > 详细

【Nginx】Nginx反向代理转发Host设置

时间:2020-06-02 15:05:04      阅读:41      评论:0      收藏:0      [点我收藏+]

#事故现场:

  服务器A(Nginx服务器):192.168.2.126

  服务器B(Web服务器):192.168.2.221

  服务器A反向代理服务器B,A配置了upstream为:

技术分享图片
http {
  upstream test_server {
    server 192.168.2.221:8080 weight=1 max_fails=3 fail_timeout=30s;
  }
}
技术分享图片

  用浏览器访问A:192.168.2.126 在服务端获取Host,结果为:test_server ,而我想得到的是:192.168.2.221

context.Request.Headers.Get("Host");// text_server
context.Request.ServerVariables["SERVER_NAME"]; // text_server

#原因及解决方案:

  默认情况下反向代理是不会转发请求中的Host头部,如果需要转发,则需要配置红色字体表示的选项参数。

技术分享图片
location /test {
            proxy_set_header  Host  $host;
            proxy_set_header  X-real-ip $remote_addr;
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;

            proxy_pass http://192.168.2.12:5252/test;
}
技术分享图片

#如果不修改Nginx配置,那服务端代码如何获取原始Host呢?

以asp.net代码为例:

HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_HOST"];

#参考:https://www.cnblogs.com/yshyee/p/7531264.html

 

【Nginx】Nginx反向代理转发Host设置

原文:https://www.cnblogs.com/Crazy-Liu/p/13030972.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!