Nginx反向代理+跳转接口实现部分链接重定向

 需求:将网站域名HOST指向反向代理服务器,在接口服务器中配置的链接通过接口服务器跳转,未配置的链接原样显示

location / {
    set $flag 0;
    if (!-e $request_filename){
        set $flag "${flag}1";
    }
    if ($http_host ~ (.*)(api.xxx.com)(.*)?){
        set $flag "${flag}2";
    }
    if ($flag = "012"){
        rewrite  ^(.*)$  /index.php?s=/$1  last;
        break;
    }
    set $proxy_flag 0;
    if ($args !~ (.*)?proxy=){
        set $proxy_flag "${proxy_flag}1";
    }
    if ($http_host ~ (.*)(!?api.xxx.com)(.*)?){
        set $proxy_flag "${proxy_flag}2";
    }
    if ($proxy_flag = "012"){
        rewrite  ^(.*)$  http://api.xxx.com/5c21692f3c6cd?referer=$scheme://$http_host$request_uri redirect;
        break;
    }
    if ($args ~ (.*)?proxy=){
        
    }
    proxy_pass $scheme://$http_host$request_uri;
    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_set_header REMOTE-HOST $remote_addr;
    add_header X-Cache $upstream_cache_status;
    expires 12h;
}
location ~ .*\.(php|jsp|cgi|asp|aspx|flv|swf|xml|css|js|png|jpg)?$
{
    proxy_pass $scheme://$http_host$request_uri;
    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_set_header REMOTE-HOST $remote_addr;
    add_header X-Cache $upstream_cache_status;
    expires 12h;
}

猜你喜欢

转载自blog.csdn.net/taian1665/article/details/86687529
今日推荐