认识Nginx
什么是Nginx?
Nginx本质上来说是一个web服务器。它能提供高性能的HTTP和反向代理服务。
这里,对于初学者来说,或许会有点懵。
到底什么是web服务器,什么又是反向代理呢?
web服务器
对于学习过springboot类似的框架的同学来说,在springboot中可以轻松搭建web服务器。功能就是提供上网浏览页面的作用。
那么,是什么让springboot具有上网浏览页面的功能呢?
在springboot启动的时候,我们会看到Tomcat打印的日志出现,其实springboot内嵌了Tomcat,而Tomcat里面其实也有了Web服务器的功能。
那么,我们为什么还要用Nginx作为web服务器呢?
相比于Tomcat,Nginx在性能上比它好的多,在高并发环境下,Nginx也不容易出现故障,事实上,大多数网站还是应用的Nginx作为web服务器。
反向代理
学过计算机的都听说过代理这个名词。
既然要学反向代理,那么正向代理我也顺便说一下。
正向代理:是指代理服务器堆目标服务器的代理,通常这个关系是一对一。
这就好比这个代理服务器是一个传话的人。总结:正向代理就是找个传话的人代替你发送请求。
如下图:
反向代理:相比于正向代理,反向代理是一个一对多的关系,一个代理服务器可以代理到多个服务器上面,并且目标服务器还可以是内网服务(外人无法正常访问,局域网),外网无法正常访问。
这就好比很多个河流涌向一个节口,然后又像尿分叉一样分了出去。
如下图:
| 区别 | 正向代理 | 反向代理 |
|---|---|---|
| 代理对象 | 用户 | 服务器 |
| 代理服务器和目标服务器关系 | 一对一 | 一对多 |
| 用户是否知道目标服务器 | 是 | 否 |
所以,这两者最本质的区别是:正向代理的对象是客户端,反向代理的对象是服务器。
由此可见,反向代理可以对外隐藏目标服务器,它隐藏了真实的服务端,例如我们发一个请求,背后可能被Nginx转发了很多次,有很多服务器在为我们所用。
例如:bing的网址就是反向代理服务器,反向代理服务器会把我们的真实请求转发到真实服务器上。
Nginx的优势
1.速度快,并发高
2.配置简单,扩展强。
3.高可靠性:Nginx采用多进程的运行方式
4.热部署:不用重启就可以重载配置,升级模块,类似于代码里面的热更新。
5.开源免费