关于Nginx反向代理以及Tomcat集群搭建
一、Windows下Nginx安装与配置
1.前言
1.1 Nginx是什么?
Nginx是一个开源的Web服务器,同时Nginx也提供了反向代理和负载均衡的功能。
Nginx通常作为负载均衡器暴露在外网接受用户请求,同时也使用其反向代理的功能,将用户的请求转发到实际提供服务的内网服务器。
1.2 Windows什么情况下需要Nginx?
通常来说Windows下IIS就够用了,支持 .NET、ASP、PHP等等,不过如果你需要做负载均衡那你就需要Nginx,或者说你在一台服务器上,部署了Apache、IIS、Tomcat等多个Web服务器,这时候把80端口或443端口给Nginx在合适不过了。
当然,作为商业公司来说,通常不会有以上情况,但是如果你是个草根站长。或者说你想把你的Windows开发机作为服务器对外提供服务,那把你的Windows装上Nginx再合适不过了。
1.3 本篇环境信息
工具、环境: Windows 10、Nginx 1.21.4
2.安装过程
2.1 下载Nginx
官方下载地址:http://nginx.org/en/download.html
作者选择的是Nginx 1.21.4版本,各位小伙伴可按需自行下载。
下载后,将nginx-1.21.4.zip解压到 D:\test5(路径自行选择,本文只是做个示范)
注意:Nginx目录所在路径中不要有中文字符,也不建议有空格。
2.2 配置nginx.conf文件
进入nginx-1.21.4文件,找到并打开conf文件夹,进入配置文件nginx.conf文件,修改默认端口号为8800,若不进行修改,nginx默认端口号为80,但后续访问nginx服务浏览器时须与此端口号保持一致。
3.启动Nginx服务
使用CMD进入命令提示符,进入nginx-1.21.4文件目录,
输入命令:start nginx
如果开启了Windows防火墙,记得允许访问网络。
4.访问测试
在浏览器中输入localhost:8800(此前设置的默认端口号),若之前配置成功,则可成功访问到nginx欢迎页,若访问失败,可能是IIS占用了80端口,去掉IIS监听的80端口即可。
二、Nginx反向代理
1.修改配置文件
进入nginx.conf文件,在HTTP Server后填写如示例中的代码
示例:
listen 8081; #监听8081端口
server_name www.baidu.com; #监听的域名
location / { #转发或处理
proxy_pass https://baidu.co;
}
error_page 500 502 503 504 /50x.html;#错误页
location = /50x.html {
root /usr/share/nginx/html;
}
}
2.重载nginx配置
进入cmd命令提示符中,进入nginx-1.21.4文件目录
输入命令:nginx -s reload
之后在浏览器中输入配置的地址即可(本文地址为:localhost:8081)
若访问不成功,可在命令提示符中输入nginx -s quit退出nginx服务,在重启nginx服务,重新输入浏览器地址即可或重新刷新页面。
三、Tomcat+Nginx集群搭建
1.前言
1.1集群
1.1.1 什么是集群
集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台。在客户端看来,一个集群就象是一个服务实体,但 事实上集群由一组服务实体组成。
1.1.2 集群的特性
与单一服务实体相比较,集群提供了以下两个关键特性:
1,可扩展性--集群的性能不限于单一的服务实体,新的服 务实体可以动态地加入到集群,从而增强集群的性能。
2, 高可用性--集群通过服务实体冗余使客户端免于轻易遇到out of service的警告。在集群中,同样的服务可以由多个服务实体提供。如果一个服务实体失败了,另一个服务实体会接管失败的服务实体。集群提供的从一个出 错的服务实体恢复到另一个服务实体的功能增强了应用的可用性。
为了具有可扩展性和高可用性特点,集群的必须具备以下两大能力:
(1) 负 载均衡--负载均衡能把任务比较均衡地分布到集群环境下的计算和网络资源。
(2) 错误恢复--由于某种原因,执行某个任务的资源出现故障,另一服 务实体中执行同一任务的资源接着完成任务。这种由于一个实体中的资源不能工作,另一个实体中的资源透明的继续完成任务的过程叫错误恢复。
负载均衡 和错误恢复都要求各服务实体中有执行同一任务的资源存在,而且对于同一任务的各个资源来说,执行任务所需的信息视图(信息上下文)必须是一样的。
1.1.3 集群的分类
集群主要分成三大类:高可用集群(High Availability Cluster/HA), 负载均衡集群(Load Balance Cluster),高性能计算集群(High Performance Computing Cluster/HPC)
(1) 高可用集群(High Availability Cluster/HA):一般是指当集群中有某个节点失效的情况下,其上的任务会自动转移到其他正常的节点上。还指可以将集群中的某节点进行离线维护再上线,该过程并不影响整个集群的运行。常见的就是2个节点做 成的HA集群,有很多通俗的不科学的名称,比如"双机热备", “双机互备”, “双机”,高可用集群解决的是保障用户的应用程序持续对外提供服 务的能力。
(2) 负载均衡集群(Load Balance Cluster):负载均衡集群运行时一般通过一个或者多个前端负载均衡器将工作负载分发到后端的一组服务器上,从而达到将工作负载分发。这样的计算机集群有时也被称为服务器群(Server Farm)。一般web服务器集群、数据库集群 和应用服务器集群都属于这种类型。这种集群可以在接到请求时,检查接受请求较少,不繁忙的服务器,并把请求转到这些服务器 上。从检查其他服务器状态这一点上 看,负载均衡和容错集群很接近,不同之处是数量上更多。
(3) 高性能计算集群(High Performance Computing Cluster/HPC):高性能计算集群采用将计算任务分配到集群的不同计算节点而提高计算能力,因而主要应用在科学计算领域。这类集群致力于提供单个计算机所不能提供的强大的计算能力
1.1.4 Tomcat集群配置的优缺点
通常配置tomcat集群有三种方式:使用DNS轮询,使用apache r-proxy代理方式,使用apache mod_jk方式。
(1)DNS轮询的缺点:当集群中某台服务器停止之后,用户由于dns缓存的缘故,便无法访问服务,必 须等到dns解析更新,或者这台服务器重新启动。还有就是必须把集群中的所有服务端口暴露给外界,没有用apache做前置代理的方式安全,并 且占用大量公网IP地址,而且tomcat还要负责处理静态网页资源,影响效率。优点是集群配置最简单,dns设置也非常简单。
(2)R- proxy的缺点:当其中一台tomcat停止运行的时候,apache仍然会转发请求过去,导致502网关错误。但是只要服务器再启动就不存 在这个问题。
(3)mod_jk方式的优点是,Apache 会自动检测到停止掉的tomcat,然后不再发请求过去。缺点就是,当停 止掉的tomcat服务器再次启动的时候,Apache检测不到,仍然不会转发请求过去。
R-proxy和mod_jk的共同优点是.可 以只将Apache置于公网,节省公网IP地址资源。可以通过设置来实现Apache专门负责处理静态网页,让Tomcat专门负责处理jsp和 servlet等动态请求。共同缺点是:如果前置Apache代理服务器停止运行,所有集群服务将无法对外提供。R-proxy和 mod_jk对静态页面请求的处理,都可以通设置来选取一个尽可能优化的效果。这三种方式对实现最佳负载均衡都有一定不足,mod_jk相对好些,可以通过设置lbfactor参数来分配请求任务。
2. Tomcat集群实现原理
通过Nginx负载均衡对多个tomcat进行请求转发,也就是说将多个用户的请求通过一定的策略打到集群的各个tomcat服务器中。
3.Windows下通过nginx+Tomcat搭建Tomcat集群
详见https://blog.csdn.net/csdn15698845876/article/details/80658599
本文仅适用于学习参考教程,以下为引用文献出处,若有侵权请私信联系,经核实后会进行后续处理,感谢理解。
参考文献:
Windows下Nginx安装与配置教程 https://cloud.tencent.com/developer/article/1333800
Tomcat集群搭建超详细
https://blog.csdn.net/qq_35661171/article/details/78359681
windows下使用nginx配置tomcat集群
https://blog.csdn.net/csdn15698845876/article/details/80658599