Nginx可以同时充当正向代理服务器和反向代理服务器,具体取决于配置和使用场景。
- 正向代理服务器:当Nginx作为正向代理服务器时,它代表客户端发送请求到其他服务器。客户端向Nginx发送请求,并且Nginx将请求转发给目标服务器,并将响应返回给客户端。在这种情况下,客户端可能不知道最终的目标服务器。
- 反向代理服务器:当Nginx作为反向代理服务器时,它代表服务器接收客户端的请求。客户端向Nginx发送请求,然后Nginx根据预先配置的规则将请求转发给后端的服务器,并将后端服务器返回的响应返回给客户端。在这种情况下,客户端不知道实际提供服务的服务器。
因此,Nginx可以根据配置和使用情况充当正向代理服务器或反向代理服务器。
Nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器,与Apache一样属于WEB服务器,通过HTTP协议提供各种网络服务。
但是Apache的年代久远,在Apache上运行数以万计的并发访问,会导致服务器消耗大量内存。操作系统对其进行进程或线程间的切换也消耗了大量的CPU资源,导致HTTP请求的平均响应速度降低。
这些都决定了Apache不可能成为高性能WEB服务器,轻量级高并发服务器Nginx就应运而生了。
在介绍nginx前,首先了解下代理
代理分为正向代理和反向代理。
正向代理
正向代理,"它代理的是客户端,代客户端发出请求",是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。
正向代理的用途:
(1)访问原来无法访问的资源,如Google
(2) 可以做缓存,加速访问资源
(3)对客户端访问授权,上网进行认证
(4)代理可以记录用户访问记录(上网行为管理),对外隐藏用户信息
反向代理
反向代理,"它代理的是服务端,代服务端接收请求",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
反向代理的作用:
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载
二者区别
图解:
在正向代理中,Proxy和Client同属于一个LAN(图中方框内),隐藏了客户端信息;(因为它代理的是客户端)
在反向代理中,Proxy和Server同属于一个LAN(图中方框内),隐藏了服务端信息;(因为它代理的是服务器)
实际上,Proxy在两种代理中做的事情都是替服务器代为收发请求和响应,不过从结构上看正好左右互换了一下,所以把后出现的那种代理方式称为反向代理了。
扩展
负载均衡
几种常用web服务器对比
注:本篇文章大部分内容,来源于原文章,为方便个人学习,特此简化文字,加上个人理解文字。若有侵权,请联系我。