什么是nginx?什么是nginx的反向代理和正向代理又是什么?nginx反向代理的作用?

1. nginx

1.1 nginx简介

  1. Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布。
  2. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,*使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
  3. 一个完整的代理请求过程为:客户端首先与代理服务器创建连接,接着根据代理服务器所使用的代理协议,请求对目标服务器创建连接、或者获得目标服务器的指定资源。 Web代理(proxy)服务器是网络的中间实体。 代理位于Web客户端和Web服务器之间,扮演“中间人”的角色。HTTP的代理服务器即是Web服务器又是Web客户端。
  4. 代理服务器是介于客户端和Web服务器之间的另一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。

1.2 为什么使用nginx (nginx的优点)

  • 跨平台、配置简单、方向代理、高并发连接:处理2-3万并发连接数,官方监测能支持5万并发,内存消耗小:开启10个nginx才占150M内存 ,nginx处理静态文件好,耗费内存少,而且Nginx内置的健康检查功能:如果有一个服务器宕机,会做一个健康检查,再发送的请求就不会发送到宕机的服务器了。重新将请求提交到其他的节点上。

  • 节省宽带:支持GZIP压缩,可以添加浏览器本地缓存

  • 稳定性高:宕机的概率非常小

  • 接收用户请求是异步的

  • 事件驱动 通信机制采用epoll模型,支持更大的并发连接。

  • master/worker结构 一个master进程,生成一个或多个worker进程

  • 成本低廉 Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币


2.nginx的反向代理和正向代理

2.1正向代理

(正向代理代理的是客户端)
代理也被称为正向代理,是一个位于客户端和目标服务器之间的代理服务器,客户端将发送的请求和制定的目标服务器都提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的结果返回给客户端的过程,流程如下图:
什么是nginx?什么是nginx的反向代理和正向代理又是什么?nginx反向代理的作用?

2.2反向代理

(反向代理代理的是服务端)
相对于代理服务,反向代理的对象就是服务器,即代理服务代理的时服务器而不是客户端,它的作用现在是代替服务器接受请求,而不在像正向代理那样代理客户端。
什么是nginx?什么是nginx的反向代理和正向代理又是什么?nginx反向代理的作用?

2.3区别

  1. 安全性

    1. 正向代理的客户端能够在隐藏自身的同时访问任意网站,这给网络安全带来了极大的威胁。因此,在使用时必须采取安全的措施,以确保仅为经过授权的客户端提供服务。
    2. 而反向代理的客户端只能通过外网访问代理服务器,并且用户不知道自己访问的是一个代理服务器,好处就是反向代理将真正的处理放在内网中,有效的提高了网络安全。
  2. 功能性
    1. 正向代理的主要用途是为在防火墙内的局域网用户提供访问Internet的途径。
    2. 而反向代理是将防火墙后的服务器提供给Internet用户访问,还可以为多个后端服务器提供负载均衡、缓存功能等

  3. 用途
    正向代理用途:
    1 为在防火墙内的局域网客户端提供访问Internet的途径,如google网站
    2 可以做缓存,加速访问资源
    3 对客户端访问授权,上网进行认证
    4 代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
    反向代理用途:
    1 保证内网的安全,可以使用反向代理提供WAF功能,阻止web攻击大型网站,通常将反向代理作为公网访问地址,Web服务器是内网。
    2 负载均衡,通过反向代理服务器来优化网站的负载,反向代理服务器根据每个服务器的性 能来分配请求,保证服务器的负载能在有效的范围内

3. nginx反向代理的作用

3.1使用场景

1、反向代理

2、负载均衡

3、动静分离

反向代理:反向代理(ReverseProxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,简单来说就是真实的服务器不能直接被外部网络访问,想要访问必须通过代理。

3.2 nginx的作用

1、防止主服务器被恶意攻击

2、为负载均衡和动静分离提供实现支持

说明:
负载均衡:使用反向代理同时代理多个相同内容的应用服务器(比如tomcat),将客户端请求分发到各个应用服务器上并接收响应返回给客户端

负载均衡的作用:当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此一来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

动静分离:运用Nginx的反向代理功能分发请求:所有动态资源的请求交给应用服务器,而静态资源的请求(例如图片、视频、CSS、JavaScript文件等)则直接由Nginx返回到浏览器

动静分离的作用:主要是nginx处理静态页面的效率远高于tomcat的处理能力,使用c语言开发的nginx对静态资源每秒的吞吐量是使用Java语言开发的tomcat的6倍,也远高于其它应用服务器

参考博客:https://blog.****.net/qq_39429962/article/details/83618746
https://blog.****.net/super_qing_/article/details/87645785
https://blog.****.net/qq_42342242/article/details/80639884