location /_proxy/ {
# 配置 DNS 服务器,proxy_pass 采用变量时需要指定
resolver 114.114.114.114 valid=3600s;
# 通过正则截取路由中的 sub url
if ($request_uri ~* "/_proxy/(.*)") {
set $proxy_url $1;
}
# 解析请求地址,并进行反向代理
set $is_matched 0;
if ($proxy_url ~* "^(http|ws)(s?):\/\/?([a-zA-Z0-9\-\.]+:?\d*)([^\?]*)") {
set $is_matched 1;
set $proxy_protocol http$2;
set $proxy_host $3;
set $proxy_uri $4;
set $proxy_url $proxy_protocol://$proxy_host$proxy_uri;
proxy_pass $proxy_url$is_args$args;
}
}