前后端分离项目,前端为什么要用 Nginx?

前后端分离项目,前端为什么要用 Nginx?

论天下大势,分久必合,合久必分。

直奔主题

前后端分离项目,部署方式无非两种,分开部署、合起来部署。

分开部署

后端随意,Jetty、Tomcat等等,跑起来,前端能访问 API 即可;

前端部署,Nginx首选吧。

Nginx是一款轻量级的 Web服务器,占有内存少,并发能力强,支持反向代理,负载均衡和容错,
配置简单,轻松支持https、反向代理可以方便地解决前后端跨域问题。

合起来部署

不喷,前后端分离项目合一起是不好的,既然都分离开发了,又何必合起来呢,各自维护不香吗?

jar包部署的话,前后端合在一起,更新前端时,需要重新打包部署;

非jar包部署,还好点,更新前端静态资源一般不需要重启服务,理论上 Tomcat 和 Jetty 是差不多的。

总结一下

看题目也能看出来,我是建议使用 Nginx 的。

  1. 轻松支持 https
  2. 解决前后端跨域问题
  3. 前后端解耦,方便维护以及负载均衡
  4. Nginx静态资源处理性能要比后端常用的容器高数倍
  5. Nginx接收外部访问,类似于后端服务的防火墙,更安全

这个问题看起来理所当然,但是真的要说出来,还是需要思考下的。