在配置nginx的时候,有一个需求,访问m.XXX.com的时候,需要实际访问www.YYY.com/m,并且域名不能发生变化。

  达成这个需求有两种做法:

    第一种就是301跳转,使用rewrite来跳转域名,不过这样域名就会发生变化,与需求不符。

    第二种就是用proxy_pass跳转,只要指定跳转目的域名,就可以在访问的时候自动跳转访问目的域名,而且域名也不会发生变化。所以这里需要使用第二种方法。


  首先在/etc/nginx/conf.d/建立一个m.XXX.com.conf文件,内容为:

 1 server
2 {
3 listen 80;
4 server_name m.XXX.com;
5
6 location /
7 {
8 proxy_pass http://www.YYY.com/m/;
9 }
10 }

  这里要注意proxy_pass后面域名最后的"/",如果不添加,会跳转失败。

  然后在/etc/nginx/nginx.conf的http块内添加一行:

1 include /etc/nginx/conf.d/m.XXX.com.conf;

  然后就是重启nginx:

1 sudo /usr/nginx/nginx -s reload

  这样就可以在访问m.XXX.com的时候自动跳转到访问www.YYY.com/m了,而且域名不会发生改变。

  这里又出现了一个问题,静态资源访问不了,所以我们在m.XXX.com.conf里添加静态资源访问设置:

 1 server
2 {
3 listen 80;
4 server_name m.XXX.com;
5
6 location /
7 {
8 proxy_pass http://www.YYY.com/m/;
9 }
10
11 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|js|css|html)$
12 {
13 root /home/YYY/java/apache-tomcat-6.0.41/webapps/ROOT/;
14 expires 30d;
15 }
16 }

  当指定了静态资源的访问目录后,就能够访问到静态文件了。

  至此,需求已经解决!


  在测试后,还出现了一个问题,后台需要获取用户的信息,所以需要在m.XXX.com.conf的location内添加上下面的两行,用以修改请求头:

1 proxy_set_header Host $http_host;
2 proxy_set_header X-Forward-For $remote_addr;

  按理说这样就可以了,可是却出现了"502 Bad Gateway"错误,如果将第一行给删去,则可以恢复正常访问页面,如果除去注释,错误又出现了。查询了很多办法,均无法解决这个问题,兹将次问题记下,待解决了补齐

最新文章

  1. Mac Pro 实现 PHP-5.6 与 PHP-7.0 等多版本切换
  2. 北京动软VAR团队的HoloLens开发教程最新搜罗整理
  3. em 换算
  4. inflate的基本用法,类似于findviewbyId
  5. RDIFramework.NET ━ .NET快速信息化系统开发框架 V2.8 版本━新增企业通(内部简易聊天工具)
  6. 关于ref与out的区别
  7. CSS display:table属性用法- 轻松实现了三栏等高布局
  8. SqlService 索引原理
  9. immutable.js 更新数组(mergeDeepWith)
  10. net框架运行原理
  11. Oracle中rownum原理介绍
  12. sql server使用sql语句上传Excel到数据库
  13. numpy中的广播
  14. 使用Json封装scroll,已处理其兼容性问题
  15. centos 环境搭建jenkins服务
  16. Unity3D安卓打包
  17. django 1.9.7 css控制模板样式
  18. CF1114E Arithmetic Progression
  19. [蓝桥杯]ALGO-81.算法训练_动态数组使用
  20. SQLdeveloper同时显示多个表的窗口

热门文章

  1. 1 初识JVM
  2. numpy.linspace使用详解
  3. 获取控件的xy坐标
  4. delphi保存和提取ini文件信息
  5. python进行md5加密的两种方法
  6. 课程报名 | 基于模型训练平台快速打造 AI 能力
  7. LCD驱动详解
  8. java 根据值获取枚举对象
  9. mysql基本知识的总结
  10. Spring Boot2(004):关于 Build Systems (构建系统)