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集群负载均衡的第一步是安装Nginx和多个Tomcat实例。在多台服务器上部署Tomcat,形成一个集群,确保服务的高可用性。每台服务器上的Tomcat实例都需要配置相同的应用,以处理相同类型的请求。 接...
nginx 配置tomcat8集群
### Nginx与Tomcat集群环境部署详解 #### 一、背景介绍 随着互联网应用规模的不断增大,单个服务器已经难以满足日益增长的访问需求。为了提高系统的可用性和扩展性,采用集群技术来实现负载均衡和服务冗余变得至关...
然后,对于**Tomcat集群**,你需要在每个Tomcat实例上配置相同的Context,以便处理相同的应用。这可以通过在`server.xml`文件中的`Host`元素中定义`appBase`和`unpackWARs`属性来实现: ```xml <!-- ... --> ```...
基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理项目 基于ssm+shiro+redis+nginx tomcat服务器集群管理...
nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文
总结来说,Linux环境下通过Nginx+Tomcat集群建设,可以构建出一个高效、可扩展的Web服务架构,同时利用Nginx的反向代理功能和负载均衡策略,确保系统的稳定性和性能。在实际操作中,还需要根据具体业务需求进行定制...
nginx,tomcat集群,session共享,基于memcache 包含nginx配置,tomcat配置,以及tomcat所需要的jar 不包含nginx,tomcat,jdk,memcache的安装
Keepalived 是一种高可用性解决方案,可以与 Nginx 和 Tomcat 配合使用来实现高可用集群。下面是 Keepalived+Nginx+Tomcat 高可用集群搭建的实战记录。 Keepalived 简介 Keepalived 是一种基于 Linux 的高可用性...
nginx+tomcat集群配置文件
在这个“nginx_tomcat8_redis负载均衡demo”中,我们将探讨如何利用Nginx作为反向代理服务器,Tomcat作为应用服务器集群,以及Redis作为会话持久化存储,构建一个高效且可扩展的负载均衡解决方案。 首先,Nginx是一...
### Nginx+Tomcat 负载均衡与集群简单搭建 #### 一、概述 在互联网技术领域中,随着用户访问量的增加,单一服务器往往难以满足需求,因此需要通过负载均衡和集群技术来提高系统的稳定性和可用性。本文将详细介绍...
keepalived+Nginx+Tomcat 集群搭建** 在高并发场景中,仅靠单台 Nginx 可能不足以应对,这时可以结合 keepalived 实现高可用和负载均衡。Keepalived 提供 VRRP 协议来监控 Nginx 主备节点状态,当主节点故障时,...
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
本文档主要介绍了 Nginx+Tomcat 负载均衡的企业实战,涵盖了从0开始构建 Nginx WEB 平台、Tomcat WEB 集群、代码发布、Nginx 负载均衡 Tomcat 集群、动静分离、Rewrite 实战等方面的内容。 一、从 0 开始构建 Nginx...
### Nginx+Tomcat集群部署与负载均衡 #### 版本信息与集群及负载均衡概念 在深入了解如何实现Nginx与Tomcat集群的部署和负载均衡之前,我们需要先了解一些基本的概念以及版本信息。 - **集群**:通常指一组计算机...
Nginx与Tomcat的组合是一个常见的解决方案,因为Nginx作为反向代理和负载均衡器,能有效分发流量到多个后端Tomcat服务器,提高系统性能和稳定性。以下是对【标题】“nginx+tomcat负载均衡集群思路步骤过程.docx”和...
windowXP下搭建nginx-1.7.10和apache-tomcat-8.0.18的集群 已经配置好,下载后直接启动三个tomcat和nginx,然后访问http://localhost/即可。
6. 启动Nginx和Tomcat,监控服务器状态,确保一切正常运行。 总的来说,"tomcat+nginx集群"的架构提供了强大的可扩展性和高可用性,适用于处理大规模的Web应用流量。通过合理地配置和优化,可以有效提升系统性能,...