七层反向代理(Layer 7 Reverse Proxy)是在应用层进行转发的反向代理服务。它能够根据应用层协议(如HTTP、HTTPS等)对网络请求进行解析和处理,将请求转发给后端服务器,并将响应返回给客户端。
客户端发起请求:客户端向反向代理服务器发送请求,一般是使用统一资源定位符(URL)来标识请求的资源。
反向代理接收请求:反向代理服务器接收到客户端的请求,并解析出请求的目标资源。
负载均衡:如果有多台后端服务器提供相同服务,反向代理可以通过负载均衡算法将请求分发给后端服务器。负载均衡算法可以根据服务器的性能状况、负载情况等进行选择。
请求转发:反向代理将请求转发给后端服务器,通过建立新的网络连接将客户端的请求传递给目标服务器。
目标服务器处理请求:后端服务器接收到请求后,根据请求的内容进行处理,并生成相应的响应。
响应返回:后端服务器将处理结果封装成响应并返回给反向代理。
响应传递给客户端:反向代理服务器接收到后端服务器的响应后,将其传递给客户端作为最终的响应结果。
总结:七层反向代理能够在应用层面上进行更加精细的控制和处理。它可以根据请求的内容进行智能路由、请求重写、协议转换、缓存、SSL加密等操作。通过这些功能,七层反向代理可以提供更高级的负载均衡、安全性、性能优化和可扩展性等特性,从而提升应用的可用性和用户体验。七层反向代理软件包括Nginx、Apache HTTP Server等。
四层反向代理(Layer 4 Reverse Proxy)是在传输层进行转发的反向代理服务。它使用传输层协议(如TCP、UDP)对网络请求进行解析和处理,将请求转发给后端服务器,并将响应返回给客户端。
客户端发起连接请求:客户端向反向代理服务器发送连接请求,包括目标服务器的IP地址和端口号。
反向代理接收连接请求:反向代理服务器接收到客户端的连接请求。
负载均衡:如果有多台后端服务器提供相同服务,反向代理可以通过负载均衡算法将连接请求分发给后端服务器。负载均衡算法可以根据服务器的性能状况、负载情况等进行选择。
请求转发:反向代理将客户端的连接请求转发给后端服务器,并建立起与后端服务器的连接。
目标服务器处理请求:后端服务器接收到连接请求后,根据连接的传输层协议进行处理,并等待后续的数据传输。
数据传输:客户端和后端服务器之间开始进行数据的传输,包括请求数据和响应数据。
响应返回:后端服务器生成响应数据并返回给反向代理。
响应传递给客户端:反向代理服务器接收到后端服务器的响应数据,将其传递给客户端进行最终的响应。
总结:四层反向代理主要通过传输层协议进行转发,无法对应用层协议的内容进行深度解析和处理。它可以实现基于连接的负载均衡、快速转发和网络地址转换(NAT)等功能。但相比七层反向代理,四层反向代理缺少对应用层的细粒度控制和处理能力。常见的四层反向代理软件包括HAProxy、NGINX等。
客户端向代理服务器(nginx)发送一个请求,指定目标后端服务器,通过代理服务器转发,后端服务器处理好返回给代理服务器(nginx)。
客户端向代理服务器(nginx)发送一个请求,然后代理服务器转发给后端服务器,处理好返回给代理服务器(nginx)。此过程中隐藏后端服务器真实IP地址。
简单理解就是,访问过程中客户端知道后端服务器和不知道的区别
正向代理就时客户端发出请求,知道目标后端服务器
反向代理就是客户端发出请求,不知道后端服务器
1.bin
bin:存放启动和关闭Tomcat脚本
2.conf
conf:存放Tomcat不同的配置文件
3.doc
doc:存放Tomcat文档
4.lib
lib:存放Tomcat运行需要的库文件
5.logs
logs:存放Tomcat执行时的LOG文件
6.src
src:存放Tomcat的源代码
7.webapps
webapps: Tomcat的主要Web发布目录
8.work
work:存放jsp编译后产生的class文件
Nginx是一款非常优秀的HTTP服务器软件
支持高达50000个并发连接数的响应
拥有强大的静态资源处理能力
运行稳定
内存、CPU等系统资源消耗非常低
目前很多大型网站都应用Nginx服务器作为后端网站程序的反向代理及负载均衡器,提升整个站点的负载并发。
通过反向代理nginx处理静态页面,将请求分发到多个服务器上,使得每个服务器都可以处理适量请求。
反向代理是在location配置
upstream是在server里配置
(1)upstream 服务池名{}
配置后端服务器池,以提供响应数据
(2)proxy_pass http://服务池名
配置将访问请求转发给后端服务器池的服务器处理
服务端接收来自客户端的请求中,既有静态资源也有动态资源,静态资源由Nginx提供服务,动态资源Nginx转发至后端
Nginx处理静态页面的效率远高于Tomcat的处理能力
若Tomcat的请求量为1000次,则Nginx的请求量为6000次
Tomcat每秒的吞吐量为0.6M,Nginx的每秒吞吐量为3.6MNginx处理静态资源的能力是Tomcat处理的6倍