需求:前后段分离的项目里面,一套系统有N套api,一套api就是一个独立的站点,每个端口都需要开通外网,否则前端页面无法访问站点。有没有一种方法,让服务器只开一个外网端口?
解决思路:
- 规范api路由结构。暂且定义路由结构格式为:域名(IP)+端口+/api/controller/function。端口使用同一个,那么域名(IP)+端口是固定的,在nginx里面可以根据/api/controller来匹配路由
- 接口1: /api/sso/x1 /api/sso/x2 /api/sso/x3
- 接口2:/api/open/x1 /api/open/x2 /api/open/x3
- ..........
2.配置nginx转发路由
配置解析举例:
location ~ /api/openmt {
proxy_pass http://localhost:8101;
意思是将http请求中url包含 /api/openm 的全部转发到 http://localhost:8101
例如:http://xxxx/api/openmt/list1, http://xxxx/api/openmt/list2 都转发到 http://localhost:8101处理
所有api站点共用一个端口
原文地址:https://www.cnblogs.com/danmoqingshan/p/12641479.html
时间: 2024-10-26 14:11:28