您的位置:首页 > 运维架构 > Tomcat

Windows下使用Nginx搭建Tomcat集群实现负载均衡,同时实现session共享

2018-03-17 23:02 1191 查看
声明:本人还在学习过程中,特写此博客记录搭建步骤,难免有不足之处,请各位兄台多多包涵,谢谢

1.nginx配置

首先,下载nginx,我这里使用的是nginx-1.8.1版本,下载地址是点击打开链接

解压后得到以下目录



修改conf目录里面的nginx.conf配置文件,配置如下:

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

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

gzip  on; #启用Gzip压缩

#服务器的集群
upstream  localhost {  #服务器集群名字,要与location /中的proxy_pass一致
#server   172.16.21.13:8081 weight=1;#配置要集群的tomcat的ip地址和端口   weight是权重的意思,权重越大,分配的概率越大。
server    127.0.0.1:8080  weight=1;
server    127.0.0.1:8081  weight=1;
}
server {
listen       80;

#charset koi8-r;
#access_log  logs/host.access.log  main;

location / {
proxy_pass http://localhost; proxy_redirect default;
}
}


好了,nginx就配置完了,nginx常用的命令有以下三个:

1.start nginx (启动)

2.nginx -s stop (关闭)

3.nginx -s reload (重新加载,当修改完配置文件的时候可以使用)

2.Tomcat配置

安装两个tomcat,修改每个tomcat的conf目录下的server.xml配置文件

1.第一个要修改的端口号

<Server port="8006" shutdown="SHUTDOWN">


2.第二个要修改的端口号

<Connector URIEncoding="UTF-8" connectionTimeout="20000" port="8081" protocol="HTTP/1.1" redirectPort="8443"/>


3.第三个要修改的端口号

<Connector port="8010" protocol="AJP/1.3" redirectPort="8443"/>


最后还要配置session共享,找到已经注释的

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


在它下面加上以下配置

<!--配置session共享-->
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="6">

<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<!--
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
-->
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5000"
selectorTimeout="100"
maxThreads="6"/>

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cl
90fc
uster>
<!--配置session共享结束-->


到这里所有的配置都完成了,因为我这里分别使用的是tomcat6和tomcat7,在启动nginx和tomcat后,浏览器输入http://localhost然后刷新就会得到以下的结果





由此可以知道已经实现了负载均衡,session共享这里就不展示了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐