• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Still_Walking

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

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

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

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

环境: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之后,暂时没有发现什么不良反应。

posted on 2017-05-11 20:45  limanxian  阅读(2155)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3