日常工作中经常遇到这样的场景,后端是多个团队协作的。开发、调试、测试环境可能都不同,但是最后部署是一体的。
Nginx可以很好解决此类问题,并辅助前端开发过程中,实现mock到真实环境的无缝切换。下面一一个实例,为大家呈现下:
1、了解后端提供的各类接口,相关地址。收集到如下列表。
No | 服务 | 开发团队 | VPN | 域名 | 协议 | 路径 |
1 | Account | 合作伙伴1 | YES | 10.1.1.1:8081 | http | /account |
2 | User | 已经系统 | NO | dev.company.net:8080 | https | /user/ |
3 | Order | 后端团队 | NO | 172.2.16.8:8080 | http | /order/ |
4 | Static | 前端团队 | NO | 192.168.0.2 | http | /htdocs/ |
2、明确最终部署时,所有服务都在一个域名下工作。但是这个域名并没有确定下来。
先暂定此域名为 : oss.cloud.net , 代码中不要出现绝对路径
3、配置nginx,这里涉及到https,估计后面都会使用https。为避免页面跳转,统一使用https配置nginx。脚本如下:
server {
listen 31008 ssl;
#listen 443 ssl;
ssl_certificate server.pem;
ssl_certificate_key server.key;
ssl_password_file pwd.txt;
server_name cloud.company.net;
location /htdocs/ {
ssi on;
ssi_silent_errors on;
ssi_types text/shtml;
# local debug no cache
add_header Cache-Control no-cache;
add_header Pragma no-cache;
add_header Expires 0;
root /opt/htdocs/;
index index.html index.htm;
}
location /user/ {
proxy_pass https://dev.company.net:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#proxy_ssl_ciphers HIGH:!aNULL:!MD5;
#proxy_ssl_verify on;
#proxy_ssl_verify_depth 2;
#proxy_ssl_session_reuse on;
}
location /account/ {
proxy_pass http://10.1.1.1:8081/account/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#proxy_ssl_ciphers HIGH:!aNULL:!MD5;
#proxy_ssl_verify on;
#proxy_ssl_verify_depth 2;
#proxy_ssl_session_reuse on;
}
location /order/ {
proxy_pass http://172.2.16.8/order/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#proxy_ssl_ciphers HIGH:!aNULL:!MD5;
#proxy_ssl_verify on;
#proxy_ssl_verify_depth 2;
#proxy_ssl_session_reuse on;
}
}
4、使用vpn登录account要求的环境。即可愉快的开始调试了。
以上就是完整的步骤。如果不知晓如何创建server.pem,server.key。 可参考https://blog.csdn.net/gycommunicate/article/details/2585179