问题?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"/>
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/