Nginx与Tomcat6集群
Tomcat6集群配置
? 参考文档 http://tomcat.apache.org/tomcat-6.0-doc/
? Tomcat1 /home/web/tomcat1 Server_port:8005 Conn_port:7518 Conn_AJP13_port:8009 Conn_redirectPort:8443
? <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">
? Tomcat2 /home/web/tomcat2 Server_port:8006 Conn_port:7519 Conn_AJP13_port:8010 Conn_redirectPort:8444
? <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
?
? Tomcat1的server.xml文件如下:(Tomcat2类似)
??? <?xml version='1.0' encoding='utf-8'?>
??? <Server port="8005" shutdown="SHUTDOWN">???
????? ...
??????? <Connector port="7518" protocol="HTTP/1.1"
?????????????????? maxHttpHeaderSize="8192" connectionTimeout="20000"
?????????????????? disableUploadTimeout="true" enableLookups="false"
?????????????????? redirectPort="8443" maxThreads="600"
?????????????????? minSpareThreads="25" maxSpareThreads="75" acceptCount="100" />
??????? <Connector port="8009" protocol="AJP/1.3"
?????????????????? maxHttpHeaderSize="8192" connectionTimeout="20000"
?????????????????? disableUploadTimeout="true" maxThreads="600"
?????????????????? minSpareThreads="25" maxSpareThreads="75"
?????????????????? enableLookups="false" redirectPort="8443" />???
??????? <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">???
????????? ...?
??????????? <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
???????????????????? channelSendOptions="6">???
????????????? <Manager className="org.apache.catalina.ha.session.BackupManager"
?????????????????????? expireSessionsOnShutdown="false"
?????????????????????? notifyListenersOnReplication="true"
?????????????????????? mapSendOptions="6"/>
????????????? <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;.*\.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"/>
??????????? </Cluster></Host></Engine></Service></Server>
? Tomcat6的集群主要作用是session的复制,如果Nginx用ip_hash方式固定某IP访问,则Tomcat的集群无需配置。
? 但若某IP固定访问的一后端服务器宕机,则此IP下所有访问session丢失。
???????????
Nginx转发设置
? Nginx的Nginx.conf设置如下:
??? user? nobody;
??? worker_processes? 2;???
??? error_log? logs/error.log? notice;
??? pid??????? logs/nginx.pid;??
??? worker_rlimit_nofile 65535;
??? events {
??????? use epoll;
??????? worker_connections? 10240;
??? }???
??? http {
??????? include?????? mime.types;
??????? default_type? application/octet-stream;???
??????? log_format? main? '$remote_addr - $remote_user [$time_local] "$request" '
????????????????????????? '$status $body_bytes_sent "$http_referer" '
????????????????????????? '"$http_user_agent" "$http_x_forwarded_for"';???
??????? access_log? logs/access.log? main;???
??????? client_header_timeout 3m;
??????? client_body_timeout 3m;
??????? send_timeout 3m;???
??????? sendfile??????? on;
??????? tcp_nodelay on;??
??????? keepalive_timeout? 65;???
??????? upstream servers1 {
??????????? server 192.168.1.190:7518 weight=1;
??????????? server 192.168.1.190:7519 weight=1;
??????? }???
??????? server {
??????????? listen?????? 80;
??????????? server_name? localhost;???
??????????? charset utf-8;???
??????????? access_log? logs/host.access.log? main;???????
??????????? location / {
??????????????? root?? html;
??????????????? index? index.jsp index.html index.htm;
??????????? }???
??????????? error_page?? 500 502 503 504? /50x.html;
??????????? location = /50x.html {
??????????????? root?? html;
??????????? }???
??????????? location /mygold {
??????????????????? proxy_pass http://servers1;
??????????????????? proxy_set_header X-Real-IP $remote_addr;
??????????????????? proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
??????????????????? proxy_set_header Host $http_host;
??????????????????? client_max_body_size??? 100m;
??????????????????? proxy_connect_timeout?? 60;
??????????????????? #proxy_busy_buffers_size 2048k;
??????????? } } }
? Nginx转发会自动识别后端服务器的存活状态。一旦发现其中一台宕机,会把请求转发给其它服务器。
???????????
应用程序的session同步
? 修改程序目录WEB-INF下的web.xml:在</web-app>前加如下行:
? <distributable/>即可实现session同步
? session固定,ip_hash方式.
??? ip_hash方式仅能用ip这个因子来分配后端,即针对同一IP固定访问后端一服务器.
??? 配置在upstream内加一行 ip_hash; 不过以下两种方式中慎用:
????? nginx不是最前端的服务器。
????? nginx的后端还有其它方式的负载均衡。
? 另一种方式是用模块upstream_hash. 能用作url_hash.
详细解决方案
Nginx与Tomcat六集群
热度:229 发布时间:2013-11-08 17:52:35.0
相关解决方案
- apache-tomcat-7.0.32下的html页面不能访问有关问题
- Server Tomcat v7.0 Server不能起步
- tomcat 部署出现以上提示信息 求解 急
- Eclipse + Tomcat Debug時很慢,该怎么解决
- JDOM ,windows7 ,tomcat 哪位高手的bug
- tomcat 配置https的有关问题
- 请问上Linux平台上怎么搭建JDK \TOMCAT\MYSQL
- Tomcat 6.0 servlet 中文字符乱码解决思路
- 求教:tomcat 的 perm gen设立
- 启动apache-tomcat-5.5.33出现有关问题
- tomcat 配置有关问题
- tomcat 用Bootstrap直接启动一个服务,其他web工程如何调用
- Tomcat 出现以上异常 请高手帮忙看一上
- TOMCAT 5.5 浏览器输入http://localhost:8080/工程名/页面名 报错404解决方法
- TOMCAT 5。0运行 异常信息Apache Xerces (or Java 1.5) for full XSD support
- tomcat 起动报错
- []TOMCAT 上载文件时提示空指针错误 上来来的XLS是空白的
- Server Apache Tomcat v6.0.35 at localhost failed to start
- 小弟我用JSP+ACCESS+tomcat 5.0 JDK1.4做的一个网站
- tomcat 导入不了自定义类的有关问题
- struts1 myeclipse tomcat 从页面失去乱码
- tomcat+hibernate配置jndi数据源的有关问题
- tomcat 503异常
- tomcat 输入IP跟输入localhost有什么区别
- tomcat 80端口有关问题
- tomcat 内存溢出,该怎么解决
- org.apache.tomcat.util.http.Parameters processParameters,该怎么解决
- s2sh tomcat 启动报错 Caused by: java.io.FileNotFoundException: Could not open Servle,该如何解决
- tomcat 打开文件太多
- tomcat 配置,该怎么处理