nginx学习,看这一篇就够了:下载、安装。使用:正向代理、反向代理、负载均衡。常用命令和配置文件,很全-CSDN博客
Nginx 是高性能的 HTTP 和反向代理的web服务器,处理高并发能力是十分强大的,能经受高负 载的考验,有报告表明能支持高达 50,000 个并发连接数。
在这里,用通俗易懂的方式解释一下:
**正向代理**
我们平时需要访问国外的浏览器是不是很慢,比如我们要看推特,看GitHub等等。 我们直接用国内的服务器无法访问国外的服务器,或者是访问很慢。所以我们需要在**本地搭建一个 服务器**来帮助我们去访问。那这种就是正向代理。(浏览器中配置代理服务器)
**反向代理**
那什么是反向代理呢。比如:我们访问淘宝的时候,淘宝内部肯定不是只有一台服务 器,它的内部有很多台服务器,那我们进行访问的时候,因为服务器中间session不共享,那我们是 不是在服务器之间访问需要频繁登录,那这个时候淘宝搭建一个**过渡服务器**,对我们是没有任何 影响的,我们是登录一次,但是访问所有,这种情况就是 反向代理。对我们来说,客户端对代理是 无感知的,客户端不需要任何配置就可以访问,我们**只需要把请求发送给反向代理服务器,由反向 代理服务器去选择目标服务器获取数据后,再返回给客户端,**此时反向代理服务器和目标服务器对 外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器的地址。(在服务器中配置代理服务器
## 特点
-
- 高并发、高性能;
-
- 模块化架构使得它的扩展性非常好;
-
- 异步非阻塞的事件驱动模型这点和 Node.js 相似;
-
- 相对于其它服务器来说它可以连续几个月甚至更长而不需要重启服务器使得它具有高可靠性;
-
- 热部署、平滑升级;
-
- 完全开源,生态繁荣;
**HTTP服务器**
Nginx本身也是一个静态资源的服务器 (https://cloud.tencent.com/act/pro/promotion-cvm?from_column=20065\&from=20065), 当只有静态资源的时候,就可以使用Nginx来做服务器,如果一个网站只是静态页面的话,那么就可 以通过这种方式来实现部署。
**静态服务器** 在公司中经常会遇到静态服务器,通常会提供一个上传的功能,其他应用如果需要静态资源就从该静 态服务器中获取。
**反向代理** 反向代理应该是Nginx使用最多的功能了,反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。 简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被 外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而 已
反向代理通过`proxy_pass`指令来实现。
**负载均衡**
负载均衡(https://cloud.tencent.com/product/clb?from_column=20065\&from=20065)也是 Nginx常用的一个功能,负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、 FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。 简单而言就是当有2台或以上服务器时,根据规则随机的将请求分发到指定的服务器上处理,负载均 衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。而Nginx目前支持自带3种负 载均衡策略,还有2种常用的第三方策略。 负载均衡通过upstream指令来实现。