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

关于域名转发proxy_pass的更多相关文章

  1. 【Nginx】关于域名转发proxy_pass

    在配置nginx的时候,有一个需求,访问m.XXX.com的时候,需要实际访问www.YYY.com/m,并且域名不能发生变化. 达成这个需求有两种做法: 第一种就是301跳转,使用rewrite来跳 ...

  2. nginx安装配置域名转发

    1.安装pcre 1.[root@localhost home]# tar zxvf pcre-8.10.tar.gz //解压缩 2.[root@localhost home]# cd pcre-8 ...

  3. Nginx配置域名转发实例

    域名:cps.45wan.com   所在阿里云主机:123.35.9.12 45wan没有在阿里云备案 67wan已经在阿里云备案 阿里云主机(假如123.35.9.12)上原来的nginx配置: ...

  4. Nginx配置以及域名转发

    工程中的nginx配置 #user nobody; worker_processes 24; error_log /home/xxx/opt/nginx/logs/error.log; pid /ho ...

  5. 搭建nginx反向代理用做内网域名转发

    先上一个我的正常使用的配置 location / { proxy_pass http://192.168.1.84:80; proxy_redirect off; proxy_set_header H ...

  6. 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则

    负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...

  7. nginx 端口转发 (proxy_pass反向代理)

    第一种(访问IP转发到IP+端口) server{ listen ; server_name 192.168.1.114; index index.php index.html index.htm; ...

  8. 端口被占用通过域名的处理 把www.domain.com均衡到本机不同的端口 反向代理 隐藏端口 Nginx做非80端口转发 搭建nginx反向代理用做内网域名转发 location 规则

    负载均衡-Nginx中文文档 http://www.nginx.cn/doc/example/loadbanlance.html 负载均衡 一个简单的负载均衡的示例,把www.domain.com均衡 ...

  9. nginx域名转发

    场景1:因服务器限制,所以只对外开放了一个端口,但是需要请求不同的外网环境,所以在中转服务器上用nginx做了一次转发 实现: server { listen 8051; server_name lo ...

随机推荐

  1. 吴裕雄--天生自然java开发常用类库学习笔记:比较器

    class Student implements Comparable<Student> { // 指定类型为Student private String name ; private i ...

  2. jmeter简单压测、下载文件

    一.jmeter做简单压测(单机) 1.添加需要压测的HTTP请求 2.添加聚合报告 3.设置压测场景 4.查看聚合报告 二.多机同时进行压测 1.在需要连接的电脑上打开jmeter  bin目录下的 ...

  3. 动态弹出框,iframe的name包含一串随机数

    由于name是随机的,要定位name比较困难,此处由于iframe的标签是唯一的,所以可以用tag_name定位 framename=driver.find_element_by_tag_name(& ...

  4. 将git本地仓库同步到远程仓库

    同步到远程仓库可以使用git bash 也可以使用tortoiseGit 1.使用git bash 在仓库的所在目录,点击右键选择“Git Bash Here”,启动git bash程序. 然后再gi ...

  5. P1006 换个格式输出整数

    这道题相较于上一题来说就简单了许多.看题. 怎么感觉这道题有点类似P1002写出这个数.流程差不多,思路大致是先求出每一位上的数,然后根据 百十个 的顺序输出结果.题目比较简单,不做赘述,贴代码 代码 ...

  6. asp.net增加指定404页面

    对于在asp中添加404页面我并不熟悉,所以刚开始只能在网上找各种资料,网上资源太多,各种借鉴.   1.借鉴网上尝试的第一种方法:   首先,修改应用程序根目录的设置,打开 “web.config” ...

  7. netty权威指南学习笔记四——TCP粘包/拆包之粘包问题解决

    发生了粘包,我们需要将其清晰的进行拆包处理,这里采用LineBasedFrameDecoder来解决 LineBasedFrameDecoder的工作原理是它依次遍历ByteBuf中的可读字节,判断看 ...

  8. idea 将java 项目 打包成jar包

    记录一下,防止忘记.ps : 请忽略这个是web项目 1.idea 打包jar包 (1)首先打开Project Structure,选中Artifacts (2)点击绿色加号,选中jar ,然后选中f ...

  9. 3-Java逻辑控制语句

    目录 Java选择结构 Java循环结构 return.break.continue Math.random()的使用和条件运算符 1.Java选择结构 1.1.if(布尔表达式)单选结构 - 当布尔 ...

  10. 八十六、SAP中ALV的事件查看

    一.事务代码SE37,点击运行 二.再点击执行 三.我们可以看到有17个事件,点击17前面的表格图标 四.来到详细的事件中 五.我们回到SE37,点击显示 六.查看参数,为一个内表 七.我们点击SLI ...