Nginx实现与tomcate集群

来源:互联网 发布:java生成四位随机数 编辑:程序博客网 时间:2024/06/04 18:40

问题?Nginx实现与tomcate集群,如何设置Nginx与多态tomcate服务器集群


一、集群的概念及作用

    集群通俗的来讲,就是起到负载均衡的作用,当一台服务器处理请求达到瓶颈的时候,这个时候怎么办?就需要用到集群的技术,通过多太服务器来均衡处理请求,这样就减少了服务器的压力。如今的集群技术已经很成熟了。

二、Nginx介绍、

     Nginx("engine x") 是一个高性能的HTTP反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的服务器。当然第一的肯定是Apache服务器,不过在这里也可以做与多台Apache服务器集群,条条大路通罗马嘛。Nginx服务器有很多作用,其中一个很重要的作用就是用来集群使用,将它作为HTTP服务器来使用,当请求发给Nginx服务器了,又它通过路由算法或者是负载均衡算法来决定将请求给那个服务器,然后进行处理请求。

三、Nginx服务器与多台tomcate服务器集群配置

(1)Nginx服务器的配置

进入下载好的Nginx服务器解压包中的以下位置:打开配置文件



如果在配置文件已经存在以下配置,只需要将你需要加入的服务器,加入即可,这个在后面tomcate配置中有:
upstream tomcat-servers {ip_hash;server 127.0.0.1:8081;server 127.0.0.1:8088;}

这里的location本地配置,用的名字和上面配置内容的名字相同,不能写错了。

(2)tomcate服务器的配置

相应的进入tomcate的配置中,找到server.xml文件,打开进入


首先第一点:既然是tomcate服务器,那自然端口号就不能写成以前默认的80端口了,两个tomcate服务器的服务端口都不能相同,手动写一个:
<Server port="8004" shutdown="SHUTDOWN">
这里的8081连接端口就和上面配置的Nginx配置文件内容相同了,也就意味着,这里的配置就把它加入到了Nginx服务器中。
    <Connector port="8081" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />
redirectPort:指的就是Nginx服务器的端口
port:端口号不能相同

HTTP服务器(Nginx)是怎么找到tomcate服务器的呢,就是通过AJP协议找到的,所以AJP协议也需要配置:
<Connector port="11009" protocol="AJP/1.3" redirectPort="8443" jvmRoute="tomcat71"/>

jvmRoute:可写可不写,起个名字
port:端口号不能相同

下面这个配置需要打开:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

同理在另外一个tomcate服务器中也是这样配置,端口号即为:8088
<Server port="8005" shutdown="SHUTDOWN">

    <Connector port="8088" protocol="HTTP/1.1"               connectionTimeout="20000"               redirectPort="8443" />

<Connector port="12009" protocol="AJP/1.3" redirectPort="8443" jvmRoute="tomcat72"/>

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>


(3)运行步骤

第一步:开启两个tomcate服务器的服务
第二步:开启Nginx服务器的服务,点击Ngxin.exe

(4)集群后的运行效果

如果没有加入到Nginx中形成集群,地址栏中输入localhost,会直接跳到Nginx服务器页面
如果tomcate加入到Nginx服务器中,这会把请求转发到tomcate服务器,则会出现以下tomcate的界面:


四、Nginx相关知识总结

参考资料:
1.  http://tengine.taobao.org/book/
2.  Nginx官网网址 http://nginx.org/

0 0