Nginx+Tomcat实现负载均衡

网友投稿 318 2022-11-10

Nginx+Tomcat实现负载均衡

首先对知识点了解

集群(Cluster)简单来说就是用N台服务器构成一个松耦合的多处理器系统(对外是一个服务器),内部通过网络实现通信。让N台服务器之间相互协作,共同承载一个网站的请求压力。用知乎上一个作者的话来说就是“同一个业务,部署在多个服务器上”,这就是集群。 集群中比较重要的是任务调度。 负载均衡(Load Balance)简单来说就是根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服务器群来处理网站的请求,从而共同完成工作任务。

nginx是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器

高并发连接: 官方测试能够支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。

2.内存消耗少: 在3万并发连接下,开启的10个Nginx 进程才消耗150M内(15M*10=150M)。

3.稳定性高: 用于反向代理,宕机的概率微乎其微4.配置文件非常简单: 风格跟程序一样通俗易懂。5.内置的健康检查功能: 如果 Nginx Proxy 后端的某台 Web 服务器宕机了,不会影响前端访问。等等优点

由于nginx的性能很好,因此国内很多大公司都在使用,最主要的原因也是nginx是开源免费的。除了上面描述的一系列功能,项目中主要用nginx来实现以下三个功能:

动静分离 负载均衡 反向代理

动静分离:动静分离的原理非常简单,我们可以将一些静态资源html文件、图片等交给nginx来处理,将后台请求转发给后台服务器处理,由于nginx会有缓存作用,因此这样不仅仅加快了访问速度,而且也减小了tomcat服务器的负载。

反向代理:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连的客户端,此时代理服务器对外就表现为一个服务器。

负载均衡主要特点:

减轻后台服务器负载 自动去掉后台宕机服务器 缓存后台请求内容,加速请求速度

nginx负载均衡主要策略:

轮询(默认)每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 fair按后端服务器的响应时间来分配请求,响应时间短的优先分配。 url_hash按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

默认情况下是轮询的策略,但是这种方式的使用有一个问题,分布式session不一致的问题,不过我们可以使用ip_hash来将同一ip地址上的请求分配到一台服务器中处理,这样就不会出现session不一致的问题。这个问题不是我们这篇文章讨论的重点,感兴趣的读者可以自行查询资料。

配置安装

需要tomcat和nginx (前两章博客有tomcat,nginx详细的安装及简介)

安装成功后tomcat配置文件说明cd /usr/local/tomcat7/conf/catalina.policy:权限控制配置文件catalina.properties:tomcat属性配置文件server.xml :主配置文件

主配置server.xml文件说明:

##表示tomcat关闭端口,默认只对本机地址开放,可以再本机通过telnet 127.0.0.1 8005 对tomcat进行关闭操作 ##tomcat 启动的默认端口号为8080. ##tomcat启动AJP1.3连接器时默认的端口号。

我们可以创建一个新的目录,来设置默认网页。

mkdir -p /web/webapp cd /web/webapp

写一个jsp的默认网页vim index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> JSP test1 page <% out .println("welcom to test sits,http://text1.com");%>

#编辑主配置文件vim server.xml #添加以下部分内容

以上内容是存在的,添加下面这一条

重新启动tomcat

/usr/local/tomcat7/bin/shutdown.sh #关闭 /usr/local/tomcat7/bin/startup.sh #启动tomcat

配置好tomcat,在配置nginxvim /usr/local/nginx/conf/nginx.conf在nginx.conf配置

在server中添加红色部分内容(在localtion下添加) location / { root html; index index.html index.htm; proxy_pass (tomcat-server是一个自定义名称) } 在http段中添加一下内容(最后一行的大括号上边添加) upstream tomcat-server { server 192.168.3.101:8080 weight=1; server 192.168.3.102:8080 weight=1; }

重启一下nginx再次访问(访问的并不是tomcat,而是nginx,访问页面会轮询出现tomcat的页面。)至此,我们就完成了对nginx负载均衡的测试,如有什么问题欢迎留言讨论。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:物联网与云计算之间是怎样的联系
下一篇:Quant Network正在使用区块链技术来解决网络安全挑战
相关文章

 发表评论

暂时没有评论,来抢沙发吧~