• 欢迎访问ByWei.Cn,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,加入百味博客 软件定制QQ群
  • 已升级为最新版主题,并将持续优化改造中,支持说说碎语功能,可像添加文章一样直接添加说说,博客主题升级啦
  • 感谢您百度求点赞啊!百度网址
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏百味博客吧
  • 博主热烈欢迎 软件定制开发 联系:http://www.bywei.cn

Nginx_proxy隐藏ip和端口号配置方案

开源软件 百味博客 12年前 (2012-09-17) 9510次浏览 2个评论 扫描二维码

最近使用vps做了许多网站,便用nginx做proxy。期间遇到了一些问题。
刚开始的配置如下:

server {
    listen       80;
    server_name  www.qiqufang.com;
    location / {
       proxy_pass http://112.213.109.16:8080/;
    }
}

配置这个很简单,但是访问网站的时候就遇到了许多的麻烦.

两步解决问题
1、网站页面中直接读取了服务器ip和端口号。
2、在网站服务端不能正确获取到port.或者做重定向的时候地址总是丢掉端口(port)。

最简单的解决方案,修改Nginx的配置文件:

server {
  listen       80;
  server_name  www.qiqufang.com;

  server_name_in_redirect off;
  proxy_set_header Host $host:$server_port;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header REMOTE-HOST $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

  location / {
     proxy_pass http://112.213.109.16:8080/;
  }
}

 

如上才是正确的配置nginx。其中的proxy_set_header Host $host:$server_port; 这一行非常关键。Nginx和Java配合的项目中,Java方法request.getServerName()获取不到域名也是因为以上配置问题导致。

关于服务器端如何用Nginx代理隐藏真实IP端口号,实现在url访问时,完全隐藏IP端口号,只需要修改nginx配置文件即可。后端应用不管是tomcat、jetty还是apache都不用关心,这就是nginx代理的魅力所在。


百味博客 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Nginx_proxy隐藏ip和端口号配置方案
喜欢 (8)
[微信扫一扫]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(2)个小伙伴在吐槽
  1. 您的网站做的很专业。javaxxz.com是一个专门交流Java学习的论坛,希望与贵站交换链接,如有意向,请回复:admin@javaxxz.com。
    Java学习者论坛2012-12-29 16:39 回复
    • 非常感谢支持!已经添加~
      bywei2013-01-22 22:29 回复