需求:将网站域名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;
}