zoukankan      html  css  js  c++  java
  • 关于域名转发proxy_pass

    在配置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"错误,如果将第一行给删去,则可以恢复正常访问页面,如果除去注释,错误又出现了。查询了很多办法,均无法解决这个问题,兹将次问题记下,待解决了补齐

  • 相关阅读:
    python3.6+RF连接mysql
    python3.6+RF环境搭建
    zabbix服务器性能监控工具的安装二
    zabbix服务器性能监控工具的安装一
    nmon服务器监控工具的使用安装
    spotlight监控mysql性能
    spotlight监控linux性能
    robotframework之常用系统关键字
    Python实战 :2017国考职业表excel转数据库,再查询生成excel
    bat获取所有的参数
  • 原文地址:https://www.cnblogs.com/topguntopgun/p/10883848.html
Copyright © 2011-2022 走看看