本文章基于黑马程序员《苍穹外卖》项目中前后端联调,介绍nginx做出的总结。
前端发送的请求,是如何请求到后端服务的?
首先,在“苍穹外卖”项目之中,我们可以发现,其实前端发送的http请求,与后端写的接收请求是不相同的。
前端发送的,前端请求地址如下:
http://localhost/api/employee/login
然而,后端接口地址如下:
http://localhost:8080/admin/employee/login
那么我们是怎么将前端请求,如何给到后端服务的呢?
那么其实,在这个项目之中,我们用到了 nginx 。
nginx 反向代理,就是将前端发送的动态请求由 nginx 转发到后端服务器。
下面简单介绍一下(以下介绍,引用百度百科):
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。
为何要用 nginx ?
看下图,简单来说就是,前端请求,通过 nginx 反向代理,到后端服务。
那么为什么我们不跳过 nginx 直接将请求发给后端服务呢?
其实,通过 nginx 反向代理的好处有以下:
- 提高访问速度
- 进行负载均衡
- 保证后端安全
所谓的均衡负载,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,包括可以让一部分性能较好的后端服务器,多接收一些;
保证后端安全,可以这么说,例如一家公司,它一般具有自己公司的局域网,如果不通过 nginx 那么便访问不到其后端服务器,等等。