前后端分离大体分为两种拓扑结构,前端和后端通过开放对外端口的拓扑结构和只有前端开放端口的拓扑结构
前端和后端通过开放对外端口的拓扑结构
比如说前端通过 80 端口对外提供服务,后端通过 8080 端口对外提供服务,前端和后端搭建在同一台服务器 192.168.0.1 上。
一个请求的流程是 用户请求页面(http://192.168.0.1:80) -> 前端返回静态页面 -> 用户点击按钮 -> 前端请求后端(http://192.168.0.1:8080)。
前端开放端口的拓扑结构
此时对外开放的只有代理服务器的端口,请求通过代理服务器的分发,静态文件的请求发送到前端项目,动态内容的请求发送到后端项目。常见的代理服务器有 nginx。
更简单一点,将前端直接部署在代理服务器上面,最常见的就是 nginx,nginx 本身就提供了反向代理和动静分离的功能。
这些都是比较常见的拓扑结构,读者如果还知道哪些更复杂的拓扑结构欢迎在评论区分享。