业务需求:合作方获取我方微信公众号openId,我方需要回调合作方的前端地址,但是域名只有两个,自己都不够用。
解决方案:申请一个二级域名作为代理,然后使用nginx服务器转发到其他地址。
nginx 配置信息:
这是$arg_是全局参数,获取我们链接后面的参数信息,譬如localhost:8088?evn=prod,
那么$arg_evn 就等于prod,其实就是一个取值。
server {
listen 80;
server_name 申请的二级域名;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#如果是测试环境,则重定向到内网穿透的域名
if ( $arg_evn = test) {
rewrite ^/(.*)$ http://$arg_pix.test.frp.master.net/$1 permanent;
break;
}
# 合作方回调地址
if ( $arg_evn = suzhouhuku){
rewrite ^/(.*)$ http://testh5.xxxx.cn/pages/index/index permanent;
break;
}
}
}
后端代码:
这里其实就是我们申请的二级域名拼接参数,我们请求到二级域名,nginx帮我们做代理。