一、场景介绍

			因业务需要,现将两个域名进行跳转,具体如下:
		
			访问http://www.A.com/buyweb
			跳转到
			http://swch.B.com/ipcboss/temp1/yunhao_business_pc
			
			访问http://www.A.com/buyh5
			跳转到
			http://swch.B.com/ipcboss/temp1/yunhao_business_h5

二、具体配置

第一种方式:

upstream myh5 { server 10.10.17.38:8076; }

server { listen 80; #charset koi8-r; #access_log /var/log/nginx/host.access.log main;

location / {

    root html;
    index index.html;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    if ( $http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry) ) {
			#rewrite ^/(.*) /$1 break;
            proxy_pass http://myh5;
    }
    proxy_pass http://10.10.17.38:8076/jchx_web/;

}

location    /buyweb {
    proxy_pass http://10.10.17.38:8090/ipcboss/temp1/yunhao_business_pc/;
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

重点在这里!!!

location    /ipcboss/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass      http://10.10.17.38:8090/ipcboss/;
}

location    /buyh5  {
    proxy_set_header Host $http_host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://10.10.17.38:8090/ipcboss/toutiao/toutiao/;
}
	
error_page   500 502 503 504  /50x.html;
location = /50x.html {
    root   /usr/share/nginx/html;
}

}

注意:这里遇到一个问题,就是配置完buyweb和buyh5的location后,当访问http://www.A.com/buyweb 时可以看到页面但看不到图片以及一些js写的内容。

原因就是当进行跳转时找不到 http://10.10.17.38:8090/ipcboss/ 这下面的css以及js等文件,解决办法就是加上第二个 location /ipcboss/ ,这里的location后面一定要带上/ !!! 否则还是无法加载图片,作者也是想了很久才想明白为什么要加上这个/。感兴趣的找一下nginx配置文件location的详细解释!!!

第二种方式:

使用rewrite重写 rewrite ^/(.*) http://swch.B.com/ipcboss/temp1/yunhao_business_h5/$1 permanent;

他们两个的区别是,第一种方式在地址栏访问后,地址栏的地址不会变,而第二种方式地址栏显示地址会变成rewrite转发的地址。作者当时首先使用第二种实现的,但根据领导要求,后改用第一种实现,第一种颇费周折,好在顺利完成。