nginx两种方式实现域名跳转
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx两种方式实现域名跳转相关的知识,希望对你有一定的参考价值。
一、场景介绍
因业务需要,现将两个域名进行跳转,具体如下:
访问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转发的地址。作者当时首先使用第二种实现的,但根据领导要求,后改用第一种实现,第一种颇费周折,好在顺利完成。
以上是关于nginx两种方式实现域名跳转的主要内容,如果未能解决你的问题,请参考以下文章