码迷,mamicode.com
首页 > 其他好文 > 详细

nginx两种方式实现域名跳转

时间:2020-06-03 23:27:23      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:main   访问   error   href   _for   css   out   兴趣   遇到   

一、场景介绍

            因业务需要,现将两个域名进行跳转,具体如下:

            访问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两种方式实现域名跳转

标签:main   访问   error   href   _for   css   out   兴趣   遇到   

原文地址:https://blog.51cto.com/12276890/2500923

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!