nginx+tomcat配置集群负载均衡

介绍

相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额。那究竟它有什么作用呢?
摘一段百度百科上的描述:反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现一个服务器。 这里讲得很直白。反向代理方式实际上就是一台负责转发的代理服务器,貌似充当了真正服务器的功能,但实际上并不是,代理服务器只是充当了转发的作用,并且从真正的服务器那里取得返回的数据。这样说,其实nginx 完成的就是这样的工作。我们让nginx监听一个端口,譬如80端口,但实际上我们转发给在8080端口的tomcat,由它来处理真正的请求,当请求完成后,tomcat返回,但数据此时没直接返回,而是直接给nginx,由nginx进行返回,这里,我们会以为是nginx进行了处理,但实际上进行处理的是tomcat。说到上面的方式,也许很多人又会想起来,这样可以把静态文件交由nginx来进行处理。对,很多用到nginx的地方都是作为静态伺服器,这样可以方便缓存那些静态文件,比如CSS,JS,html,htm等文件。闲话就不多说了,我们直接来看看nginx怎么使用。

工具

去官网下载工具
http://nginx.org/en/download.html                   nginx-1.13.0   
http://tomcat.apache.org/download-70.cgi     apache-tomcat-7.0.78

安装

  把这个两个工具解压一下,然后点击打开里面文件:

这里写图片描述

双击nginx.exe,发现一闪而过的窗口,代表nginx服务已经启动。
也可以使用命令进行启动,使用命令行进入nginx根目录下命令:

nginx -s stop 快速退出

nginx -s quit 优雅退出

nginx -s reload 更换配置,启动新的工作进程,优雅的关闭以往的工作进程

nginx -s reopen 重新打开日志文件

这里写图片描述

新建连个文件夹分别取名tomcat1 tomcat2

这里写图片描述

每个文件夹里面分别放一个apache-tomcat-7.0.78
然后修改conf 文件夹中的server.xml分别修改三处地方

第一个:
这里写图片描述

这里写图片描述

这里写图片描述

第二个:

这里写图片描述

这里写图片描述

这里写图片描述

然后把\webapps\ROOT东西删了 新建一个index.jsp 内容 holle tomcat? ?代表不同的服务器
比如tomcat1 tomcat2

服务器配置完毕

这里写图片描述

这里写图片描述

现在开始配置nginx中conf里面的nginx.conf

配置如下(这里只进行了简单的配置,实际生产环境可以进行更详细完善配置):

worker_processes  1;#工作进程的个数,一般与计算机的cpu核数一致  

events {  
    worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)  
}  

http {  
    include       mime.types; #文件扩展名与文件类型映射表  
    default_type  application/octet-stream;#默认文件类型  

    sendfile        on;#开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off

    keepalive_timeout  65; #长连接超时时间,单位是秒  

    gzip  on;#启用Gizp压缩  

    #服务器的集群  
    upstream  netitcast.com {  #服务器集群名字   
        server    127.0.0.1:18080  weight=1;#服务器配置   weight是权重的意思,权重越大,分配的概率越大。  
        server    127.0.0.1:28080  weight=2;  
    }     

    #当前的Nginx的配置  
    server {  
        listen       80;#监听80端口,可以改成其他端口  
        server_name  localhost;##############   当前服务的域名  

    location / {  
            proxy_pass http://netitcast.com;  
            proxy_redirect default;  
        }  


        error_page   500 502 503 504  /50x.html;  
        location = /50x.html {  
            root   html;  
        }  
    }  
}  

然后启动nginx

访问http://localhost/index.jsp

第一次
这里写图片描述

第二次
这里写图片描述

第三
这里写图片描述

 到此,我们利用Nginx已经实现了负载均衡的Tomcat集群。我们不断的刷新,发现访问Tomcat2的概率大概是Tomcat1的2倍,这是因为我们在Nginx中配置的两台Tomcat的权重起的作用。

ps:谁能想到实现一个高性能的负载均衡集群会如此简单。Nginx的功能如此强大,配置却如此简单,我们还有什么理由拒绝它呢?这比我们动不动就十多万至几十万人民币的F5 BIG-IP、NetScaler等硬件负载均衡交换机廉价了不知多少。此外,大家别忘了Nginx不仅仅是一个反向代理服务器,它本身也可以托管网站,作为Web服务器,进行Http服务处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值