站点映射到外网踩到的坑,跳转丢失端口

今天准备的线上演示版本,把端口映射到外网后,发现跳转不正确,丢失了端口。

环境:centos7+docker

方案尝试:

1、修改docker的端口映射,直接把nginx的端口改为外网的端口。改完之后,大部分连接好用,还有个别链接不好用。方案被pass。

2、我们的nginx的原来配置有这么一行:proxy_set_header Host             $host;

我查看了nginx的文档,有这么一段说明 :

如果不想改变请求头“Host”的值,可以这样来设置:

proxy_set_header Host$http_host;

但是,如果客户端请求头中没有携带这个头部,那么传递到后端服务器的请求也不含这个头部。 这种情况下,更好的方式是使用$host变量——它的值在请求包含“Host”请求头时为“Host”字段的值,在请求未携带“Host”请求头时为虚拟主机的主域名:

proxy_set_header Host$host;

此外,服务器名可以和后端服务器的端口一起传送:

proxy_set_header Host$host:$proxy_port;

如果某个请求头的值为空,那么这个请求头将不会传送给后端服务器:

proxy_set_header Accept-Encoding"";

于是把这行配置改为: proxy_set_header Host       $http_host;

改完之后,没有发现丢失端口的情况。

使用方案2之后,暂时没有发现什么不良反应。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,368评论 19 139
  • 第一章 Nginx简介 Nginx是什么 没有听过Nginx?那么一定听过它的“同行”Apache吧!Ngi...
    JokerW阅读 32,867评论 24 1,002
  • 今天跟朋友一起讨论过年回家跟婆婆相处时的感受,我们都觉得自己付出了全部的热情和心意,可是从婆婆们的反应感觉自己的付...
    baby心理咨询师阅读 1,098评论 0 0
  • 十一月来了 武汉的冬天要到了 走学校再也碰不到很多熟人了 大家都拖上行李头也不回就走了 开始天南地北的生活 我开始...
    陈哈哈h阅读 1,300评论 0 1
  • 清晨,给了磨叽半天才起床的大娃一个满脸笑容的拥抱,大娃一脸疑惑,诡异滴说:老妈,你为什么笑这么开心?这么温柔?难道...
    果等麻麻叽里呱啦说吧阅读 1,306评论 0 2