

反向代理是Web服务器架构中的一个重要组件,它位于客户端和后端服务器之间,主要负责接收客户端的请求,然后将这些请求转发给后端服务器,并将服务器的响应返回给客户端。反向代理的好处包括:
- 负载均衡:反向代理可以将客户端的请求分发到多个服务器上,从而实现负载均衡,提高系统的整体性能和可用性。
- 缓存静态内容:反向代理可以缓存静态内容(如图片、CSS、JavaScript文件等),减少后端服务器的负载,并加快响应速度。
- 安全性增强:反向代理可以作为安全屏障,隐藏后端服务器的IP地址,防止直接攻击。同时,它还可以提供SSL加密、身份验证和访问控制等功能。
- 压缩和压缩:反向代理可以对传输的数据进行压缩,减少数据传输量,提高网络效率
- 会话持久性:反向代理可以管理用户的会话,确保用户的请求被发送到同一个服务器,从而保持会话状态。
- 内容过滤和修改:反向代理可以对请求和响应进行过滤和修改,例如修改响应头、重写URL等。
- 隐藏服务器细节:反向代理可以隐藏后端服务器的细节,如服务器数量、类型等,提高系统的安全性。
- 支持多种协议:反向代理可以支持HTTP、HTTPS、WebSocket等多种协议,提供灵活的网络服务。
- 日志记录和监控:反向代理可以记录请求和响应的日志,便于监控和分析系统的运行状态
- 支持CDN集成:反向代理可以与内容分发网络(CDN)集成,提高内容的全球分发效率。
使用反向代理可以显著提高Web应用的性能、安全性和可维护性。常见的反向代理服务器包括Nginx、Apache HTTP Server(使用mod_proxy模块)等。

nginx反向代理配置:
请求路径中有能够匹配api的字符串就会交给反向代理,nginx就会把请求交给反向代理,
—负载均衡配置

通过upstream来指定路径,webservers,路径不是固定的,
server_name localhost
在配置Web服务器(如Nginx或Apache HTTP Server)时,server_name 指令用于定义服务器应该响应的域名。当一个HTTP请求到达服务器时,服务器会检查请求的主机头(Host header)与配置文件中定义的 server_name 是否匹配,以决定将请求发送到哪个虚拟主机(Virtual Host)进行处理。
server_name localhost; 这行配置表示服务器将响应所有指向 localhost 的请求。localhost 是一个特殊的域名,它指向本机的IP地址(通常是127.0.0.1),用于访问本机上的服务
Tomcat服务器
Tomcat服务器是一个开源的Web服务器和Servlet容器,由Apache软件基金会管理。它主要用于运行Java编写的Web应用程序,特别是基于Java Servlet和JavaServer Pages (JSP)技术的应用程序。Tomcat实现了Java Servlet和JavaServer Pages规范,因此它能够处理动态内容的请求。
Tomcat服务器的主要特点包括:
- Servlet容器:Tomcat作为Servlet容器,负责管理Servlet的生命周期,包括加载、初始化、调用和销毁Servlet。
- JSP支持:Tomcat支持JavaServer Pages (JSP),允许开发者在HTML页面中嵌入Java代码,生成动态内容
- HTTP服务器功能:Tomcat本身是一个HTTP服务器,可以处理HTTP请求和响应,支持静态内容的提供。
- 易于配置和使用:Tomcat具有友好的配置方式,用户可以通过简单的XML配置文件来管理服务器设置和应用部署。
- 社区支持:作为Apache项目的一部分,Tomcat拥有活跃的社区和丰富的文档资源,便于用户获取帮助和学习资源
- 可扩展性:Tomcat支持插件和扩展,用户可以根据需要添加额外的功能
- 跨平台:Tomcat可以在多种操作系统上运行,包括Windows、Linux和Mac OS等
Tomcat服务器广泛应用于开发和生产环境中,特别是在Java EE(现在称为Jakarta EE)应用的部署和运行中。它是一个轻量级的解决方案,适合中小型Web应用的部署。对于大型应用或需要更多企业级特性的应用,可以考虑使用更完整的Java EE应用服务器,如WildFly、Payara或WebLogic等。
如果前端发送的请求能够和后端请求上,就可以均衡的分配给后端服务器上,
如果想让某台服务器处理相比其他服务器处理更多的请求,可以用到负载均衡策略

server_name 指令用于定义服务器应该响应的域名。当一个HTTP请求到达服务器时,服务器会检查请求的主机头(Host header)与配置文件中定义的 server_name 是否匹配,以决定将请求发送到哪个虚拟主机(Virtual Host)进行处理。
server_name localhost; 这行配置表示服务器将响应所有指向 localhost 的请求。localhost 是一个特殊的域名,它指向本机的IP地址(通常是127.0.0.1),用于访问本机上的服务。
