请通过邮件订阅网站,随时获取最新动态!

# 本地代理

本地 Proxy 方案,包括配置方式、匹配规则、请求示例及多环境切换等 • 调研&现状: ◦ startdt-boss-admin:if-else 根据前端域名跟后端域名的绑定关系,判断当前环境下使用的网关域名 ◦ multi-dingtalk-gov:对原有 if-esle 方式的改良,使用 .env.[mode] 配置文件配合 script 指定环境 ◦ china-telecom-mini-program:小程序由于是发布到应用市场,不是在自己服务器上,所以只能写死服务器地址,无法直接代理 ◦ simba:使用 nginx 代理转发,抽离网关地址相关配置参数,网关地址无论怎么变,都和前端工程无关 • Proxy 信息嵌入工程有什么问题: ◦ 安全性:环境变量会随着构建打包嵌入到输出代码,意味着任何人都有机会能够看到它,尤其是后端网关 ◦ 便捷性: ▪ 本地开发环境下,进行 mock 或者联调环境切换时,每次修改配置文件,都要重启工程,工程越大,耗时越长 ▪ 后端网关地址调整,前端要对应修改,重新提交代码 • 需要做什么: ◦ 如果是使用脚手架创建的新项目,且环境配置维护成本较低的情况,建议使用 .env ◦ 如果是老项目,或者需要针对不同客户单独部署的情况,建议使用 nginx

•	以 nginx 为例,讲解不同环境的配置,和多环境切换

nginx server配置,在 nginx.conf 中增加一条记录 http: {     ...         server {         listen       80;         server_name  _; # _表示任何ip都可以访问,,# 表示注释

location / {             proxy_pass    http://127.0.0.1:8080; # 前端服务地址         }

location /api/ {             proxy_pass    http://dev-soul-server.k8s.startdtapi.com/simba; # 后台开发环境网关地址,http 请求转发             #proxy_pass    http://xxx-soul-server.k8s.startdtapi.com/simba; # 后台xxx环境网关地址,http 请求转发         }

location /wsbackend/ {             proxy_pass  http://dev-soul-server.k8s.startdtapi.com/simba/; # 后台开发环境网关地址,websocket 请求转发             #proxy_set_header Host $host; #注意:nginx 多次转发时,该请求头要注释掉             proxy_http_version 1.1;             proxy_set_header X-Real-IP $remote_addr;             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;             proxy_set_header X-Forwarded-Proto http;             proxy_set_header Upgrade $http_upgrade;               proxy_set_header Connection "upgrade";         }

location /iframe-jupyter {             rewrite  ^/(.*) http://xxx.xxx.xxx.xxx/; # iframe-src 地址,302 重定向         }     }     ... }

nginx 常用指令:nginx -s reload|reopen|stop|quit  #重新加载配置|重启|停止|退出 nginx