情景说明
1.当后端微服务比较多时,前端调用接口时,过多的端口会比较复杂混淆
2.用nginx代理各个服务,统一暴露出nginx的端口,前端只需要调用nginx的入口地址
3.如果内网要做域名映射时,多个端口映射比较复杂,nginx代理后仅需要对nginx暴露的端口进行映射,各个服务由nginx进行转发
配置示例
server {
listen 8080;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ^~ /project1/ {
rewrite ^/project1/(.*)$ /$1 break;
proxy_pass http://172.1.1.1:8900;
}
location ^~ /project2/ {
rewrite ^/property2/(.*)$ /$1 break;
proxy_pass http://172.1.1.1:8901;
}
location ^~ /project3/ {
rewrite ^/project3/(.*)$ /$1 break;
proxy_pass http://172.1.1.1:8902;
}
}
域名映射后
1.域名/project1/ + project1的api:访问project1服务的接口
2.域名/project2/ + project2的api:访问project1服务的接口