Nginx tomcat session配置文件说明
- 格式:doc
- 大小:38.00 KB
- 文档页数:4
nginx配置详解⾼性能的http服务代理服务器和反向代理服务器,能⽀持50000个并发连接数正向代理明确买家是谁,让代理⼈去联系⽬标例如局域⽹内的客户端想要访问局域⽹外的internet,则需要代理服务器来访问,这种代理就是正向代理反向代理客户端不需要任何配置就可以访问,只需要将请求发送到代理服务器,有代理服务器去选择⽬标服务器在返回给客户端负载均衡将请求分发到不同服务器、负载分发到不同服务器,就是负载均衡访问⼀个ip 默认是80 (nginx) tomcat 是8080动静分离为了加快⽹站的解析速度、将动态和静态页⾯有不同服务器来解析,降低原来单个服务器的压⼒安装进⼊压缩⽬录执⾏./configure执⾏make && make install (编译安装)安装完成后多⼀个local/nginx 在nginx有sbin 启动脚本./nginx访问: ->welcome to nginx查看开放的端⼝:firewall-cmd –list-all添加端⼝:Firewall-cmd –add-service=http -permanentSudo firewall-cmd –add-port=80/tcp –permanent重启防⽕墙:firewall-cmd -reloadNginx 相关命令:1 进⼊到nginx的⽬录 /usr/local/nginx/sbin2 查看nginx的版本号:./nginx -v3 启动nginx ./nginx4 关闭nginx ./nginx -s stop5 重加载 ./nginx -s reload (重新加载配置⽂件 nginx.conf)Nginx的配置⽂件组成第⼀块:全局块从配置⽂件开始到events块之间的内容、主要设置⼀些影响nginx服务器运⾏的配置指令,⽐如 worker_process 1; 值越⼤,可以⽀持的并发量也越多第⼆部分:events涉及的指令主要影响nginx服务器与⽤户的⽹络连接数⽐如 worker connections 1024 ⽀持的最⼤连接数第三部分:http块(配置最多的地⽅)http全局块server块举例:浏览器访问Nginx.conf 配置如下图:proxy_pass 反向代理的地址例如:要实现http://127.0.0.1:9091/edu 访问tomcatl1 (127.0.0.1:8080)http://127.0.0.1:8080/vod 访问tomcatl2 (127.0.0.1:8081)注意:开放端⼝ 9091 8081 8080 (firewall)在 /usr/src/tomcat-xx/apache-tomcat-xx/webapps/ 创建 edu⽬录然后放⼀个a.html⽂件这时访问就能看到这是nginx.conf ⾥要改的内容~ /edu/ #正则表达式,请求路径包含 edu时就会转发到 xxx:8080关于location的说明:负载均衡:访问http://192.168.17.129/edu/a.htmlUpstream myserver{Server 192.168.17.129:8080;Server 192.168.17.129:8081;}策略:轮询(默认)、权重、ip_hash、fair(第三⽅)轮询:服务器如果down掉,⾃动剔除权重:weight 权重越⾼,分配的客户端越多Upstream myserver{Server xxx weight=1;Server xxx weight=10;}Ip_hash:每个访客固定⼀个后端服务器、可以解决session问题Upstream myserver{Ip_hash;Server xxx;Server xxx;}Fair:按后端服务器响应时间来分配请求、响应时间断的优先分配Upstream myserverr{Server xxxx;Server xxxx;Fair;}动静分离:Nginx处理静态页⾯、tomcat处理动态页⾯:⼀:把静态⽂件独⽴成单独的域名放在独⽴的服务器上另⼀种就是动态和静态⽂件混合⼀起发布,通过nginx来分开,通过location指定不同的后缀名实现不同的转发请求、通过expires 参数设置可以使浏览器缓存过期时间,减少与服务器之间的请求和流量;设定⼀个过期时间,也就是⽆需去后端服务验证,直接通过浏览器确认是否过期即可,不会残⽣额外的流量/data/image/01.jpg/data/www/a.htmlAutoinde on; // 列出返回⽬录最终测试:http://192.168.17.129/image/01.jpghttp://192.168.17.129/www/a.html⾼可⽤集群需要两台服务器 192.168.17.129 192.168.17.131 (nginx)这两台都要安装nignx、keepalivedYum -y install keepalived安装好之后修改/etc/keepalived/keepalived.conf ⽂件分别启动nignx和keepalived./nginx systemctl start keepalived.service补充:关闭nginx服务1 kill `cat /usr/local/nginx/logs/nginx.pid` //⽂件中有个pid号2 nginx -s reload //重载Session共享:⽆论登录那⼀台ip,session是⼀致的1 内存数据库(memcache)1 修改服务器和数据库的关联关系。
tomcat配置文件详解(一):目录结构tomcat的目录结构如下:目录名简介bin 存放启动和关闭tomcat脚本conf 包含不同的配置文件,server.xml(Tomcat的主要配置文件)和web.xmlwork 存放jsp编译后产生的class文件webapp 存放应用程序示例,以后要部署的应用程序也要放到此目录logs 存放日志文件lib/japser/common 这三个目录主要存放tomcat所需的jar文件(二):server.xml配置简介下面我们将讲述这个文件中的基本配置信息,更具体的配置信息见tomcat的文档元素名属性解释server port 指定一个端口,这个端口负责监听关闭tomcat的请求shutdown 指定向端口发送的命令字符串service name 指定service的名字Connector (表示客户端和service之间的连接) port 指定服务器端要创建的端口号,并在这个断口监听来自客户端的请求minProcessors 服务器启动时创建的处理请求的线程数maxProcessors 最大可以创建的处理请求的线程数enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号acceptCount 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理connectionTimeout指定超时的时间数(以毫秒为单位)Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求) defaultHost 指定缺省的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的Context (表示一个web应用程序,通常为WAR文件,关于WAR 的具体信息见servlet规范) docBase 应用程序的路径或者是WAR文件存放的路径path 表示此web应用程序的url的前缀,这样请求的url为http://localhost:8080/path/**** reloadable 这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序host (表示一个虚拟主机) name 指定主机名appBase 应用程序基本目录,即存放应用程序的目录unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR 文件中运行应用程序Logger (表示日志,调试和错误信息) className 指定logger使用的类名,此类必须实现org.apache.catalina.Logger 接口prefix 指定log文件的前缀suffix 指定log文件的后缀timestamp 如果为true,则log文件名中要加入时间,如下例:localhost_log.2001-10-04.txt Realm (表示存放用户名,密码及role的数据库) className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样) className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve类可以记录应用程序的访问信息directory 指定log文件存放的位置pattern 有两个值,common方式记录远程主机名或ip地址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。
目的:搭建Nginx与tomcat整合,用Nginx代替apache步骤:一、安装Nginx1、上传nginx-0.7.63.tar.gz至/usr/local2、执行如下命令解压nginx:1.#cd /usr/local2.#tar zxvf nginx-0.7.63.tar.gz3、编译安装nginx1.#cd nginx-0.7.632.#./configure --with-http_stub_status_module --with-http_ssl_module #启动server状态页和https模块执行完后会提示一个错误,说缺少PCRE library 这个是HTTP Rewrite 模块,也即是url静态化的包可上传pcre-7.9.tar.gz,输入如下命令安装:1.#tar zxvf pcre-7.9.tar.gz2.#cd pcre-7.93.#./configure4.#make5.#make install安装pcre成功后,继续安装nginx如果是ubuntu 或Debian系统请先安装# apt-get install libpcre3 libpcre3-dev原文:I need to compile few application and I need Perl 5 Compatible Regular Expression Library (PCRE). Under CentOS I can use a package called pcre-devel, but Debian do not have the same. How do I install pcre-devel under Debian / Ubuntu Linux?Perl-compatible regular expression library. PCRE has its own native API, but a set of "wrapper"functions that are based on the POSIX API are also supplied in the library libpcreposix. Note that this just provides a POSIX calling interface to PCRE: the regular expressions themselves still follow Perl syntax and semantics. The header file for the POSIX-style functions is called pcreposix.h. To install PCRE, type thy following command:# apt-get update# apt-get install libpcre3 libpcre3-dev1.#cd nginx-0.7.632.#./configure3.#make4.#make install4、nginx安装成功后的安装目录为/usr/local/nginx在conf文件夹中新建proxy.conf,用于配置一些代理参数,内容如下:01.#!nginx (-)02.# proxy.conf03.proxy_redirect off;04.proxy_set_header Host $host;05.proxy_set_header X-Real-IP $remote_addr; #获取真实ip06.#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip07.client_max_body_size 10m;08.client_body_buffer_size 128k;09.proxy_connect_timeout 90;10.proxy_send_timeout 90;11.proxy_read_timeout 90;12.proxy_buffer_size 4k;13.proxy_buffers 4 32k;14.proxy_busy_buffers_size 64k;15.proxy_temp_file_write_size 64k;编辑安装目录下conf文件夹中的nginx.conf,输入如下内容001.#运行nginx所在的用户名和用户组002.#user www www;003.004.#启动进程数005.worker_processes 8;006.#全局错误日志及PID文件007.error_log /usr/local/nginx/logs/nginx_error.log crit;008.009.pid /usr/local/nginx/nginx.pid;010.011.#Specifies the value for maximum file descriptors that can be opened by this process. 012.013.worker_rlimit_nofile 65535;014.#工作模式及连接数上限015.events016.{017. use epoll;018. worker_connections 65535;019.}020.#设定http服务器,利用它的反向代理功能提供负载均衡支持021.http022.{023. #设定mime类型024. include mime.types;025. default_type application/octet-stream;026. include /usr/local/nginx/conf/proxy.conf;027. #charset gb2312;028. #设定请求缓冲029. server_names_hash_bucket_size 128;030. client_header_buffer_size 32k;031. large_client_header_buffers 4 32k;032. client_max_body_size 8m;033.034. sendfile on;035. tcp_nopush on;036.037. keepalive_timeout 60;038.039. tcp_nodelay on;040.041.# fastcgi_connect_timeout 300;042.# fastcgi_send_timeout 300;043.# fastcgi_read_timeout 300;044.# fastcgi_buffer_size 64k;045.# fastcgi_buffers 4 64k;046.# fastcgi_busy_buffers_size 128k;047.# fastcgi_temp_file_write_size 128k;048.049.# gzip on;050.# gzip_min_length 1k;051.# gzip_buffers 4 16k;052.# gzip_http_version 1.0;053.# gzip_comp_level 2;054.# gzip_types text/plain application/x-javascript text/css application/xml;055.# gzip_vary on;056.057. #limit_zone crawler $binary_remote_addr 10m;058. ###禁止通过ip访问站点059. server{060. server_name _;061. return 404;062. }063.064.065. server066. {067. listen 80;068. server_name localhost;069. index index.html index.htm index.jsp;#设定访问的默认首页地址070. root /home/www/web/ROOT;#设定网站的资源存放路径071.072. #limit_conn crawler 20;073.074. location ~ .*.jsp$ #所有jsp的页面均交由tomcat处理075. {076. index index.jsp;077. proxy_pass http://localhost:8080;#转向tomcat处理078. }079.080.081. location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat 082. {083. expires 30d;084. }085.086. location ~ .*\.(js|css)?$087. {088. expires 1h;089. }090.091.#定义访问日志的写入格式092. log_format access '$remote_addr - $remote_user [$time_local] "$request" '093. '$status $body_bytes_sent "$http_referer" '094. '"$http_user_agent" $http_x_forwarded_for';095. access_log /usr/local/nginx/logs/localhost.log access;#设定访问日志的存放路径096.097. }098.099.100.101.102.}5、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:1.#/usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:1.the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok2.the configuration file /usr/local/nginx/conf/nginx.conf was tested successfully如果提示unknown host,则可在服务器上执行:ping 如果也是同样提示unknown host则有两种可能:a、服务器没有设置DNS服务器地址,查看/etc/resolv.conf下是否设置,若无则加上b、防火墙拦截6、启动nginx的命令1.#/usr/local/nginx/sbin/nginx这时,输入以下命令查看Nginx主进程号:1.ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'7、停止nginx的命令1.#/usr/local/nginx/sbin/nginx -s stop8、在不停止Nginx服务的情况下平滑变更Nginx配置a、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:1./usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:1.the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok2.the configuration file /usr/local/nginx/conf/nginx.conf was tested successfullyb、这时,输入以下命令查看Nginx主进程号:1.ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'屏幕显示的即为Nginx主进程号,例如:6302这时,执行以下命令即可使修改过的Nginx配置文件生效:1.kill -HUP 6302或者无需这么麻烦,找到Nginx的Pid文件:1.kill -HUP `cat /usr/local/nginx/nginx.pid`9、nginx启动好后启动tomcat,此时输入http://主机ip地址即可看到“My web!”三、其他stub_status语法: stub_status on默认值: None作用域: location创建一个location 区域启用stub_status"stub status" 模块返回的状态信息跟mathopd's 的状态信息很相似. 返回的状态信息如下:1.Active connections: 2912.server accepts handled requests3.16630948 16630948 310704654.Reading: 6 Writing: 179 Waiting: 106active connections -- 对后端发起的活动连接数server accepts handled requests -- nginx 总共处理了16630948 个连接, 成功创建16630948 次握手(证明中间没有失败的), 总共处理了31070465 个请求(平均每次握手处理了 1.8个数据请求)reading -- nginx 读取到客户端的Header信息数writing -- nginx 返回给客户端的Header信息数waiting -- 开启keep-alive 的情况下,这个值等于active - (reading + writing),意思就是Nginx 说已经处理完正在等候下一次请求指令的驻留连接。
Nginx + tomcat + SSL 安装配置手册1.介绍Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。
nginx有以下几项基本特性:模块化结构过滤器包括gzipping, byte ranges, chunked responses,以及 SSI-filter等filter。
高性能支持内核Poll模型,能经受高负载的考验,有报告表明能支持高达 50,000个并发连接数。
高稳定性Nginx采取了分阶段资源分配技术,使得它的CPU与内存占用率非常低。
官方表示保持10,000个没有活动的连接,它只占2.5M内存。
多负载策略多种分配策略,并且分配均匀。
自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。
目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。
2.准备2.1 资源Nginx中文网站:/Nginx英文网站:/PCRE网站:/2.2 相关软件1)PCREPCRE(Perl Compatible Regular Expressions)中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库。
neginx中使用正则表达式进行灵活配置,安装之前需要确认PCRE已安装。
下载地址:/,使用版本pcre-8.12.tar.gz2)nginx-upstream-jvm-routenginx_upstream_jvm_route 是一个 Nginx 的扩展模块,用来实现基于Cookie 的Session Sticky 的功能。
下载地址(svn):/svn/trunk/3.4.4.1 Windows版安装安装文件为.zip文件,解压缩后,运行目录中的nginx.exe(或使用命令),服务启动。
基于nginx tomcat redis分布式web应用的session共享配置一、前言nginx作为目前最流行的开源反向代理HTTP Server,用于实现资源缓存、web server负载均衡等功能,由于其轻量级、高性能、高可靠等特点在互联网项目中有着非常普遍的应用,相关概念网上有丰富的介绍。
分布式web server 集群部署后需要实现session共享,针对tomcat 服务器的实现方案多种多样,比如tomcat cluster session 广播、nginx IP hash策略、nginx sticky module等方案,本文主要介绍了使用redis服务器进行session 统一存储管理的共享方案。
相关应用结构参照下图:二、环境配置测试环境基于Linux CentOS 6.5,请先安装tomcat、redis、nginx相关环境,不作详细描述,本文测试配置如下:三、构建tomcat-redis-session-manager-master1、由于源码构建基于gradle,请先配置gradle环境。
2、从github获取tomcat-redis-session-manager-master 源码,地址如下:https:///jcoleman/tomcat-redis-session-manager3、找到源码中的 build.gradle 文件,由于作者使用了第三方仓库(sonatype),需要注册帐号,太麻烦,注释后直接使用maven中央仓库,同时注释签名相关脚本并增加依赖包的输出脚本copyJars(dist目录),修改后的 build.gradle文件如下:View Code4、执行gradle命令构建源码,编译输出tomcat-redis-session-manager-master 及依赖jar包gradle build -x test copyJars所有输出列表文件如下:四、tomcat 配置安装配置两台tomcat web服务器,分别修改Connector 端口号为8080和9090,并确保都能正常工作,当然如果分布在不同的主机则可以使用相同端口号。
linux+nginx+tomcat负载均衡,实现session同步一、Nginx简介Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP 代理服务器。
Nginx 是由Igor Sysoev 为俄罗斯访问量第二的Rambler.ru 站点开发的,它已经在该站点运行超过四年多了。
Igor 将源代码以类BSD许可证的形式发布。
自Nginx 发布四年来,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。
目前国内各大门户网站已经部署了Nginx,如新浪、网易、腾讯等;国内几个重要的视频分享网站也部署了Nginx,如六房间、酷6等。
新近发现Nginx 技术在国内日趋火热,越来越多的网站开始部署Nginx。
软件及环境:虚拟机(IP:172.16.16.174)上安装redhat enterprise server linux5.5 OS在虚拟机上安装nginx、Tomcat1和Tomcat2二、JDK的安装1、jdk-7-linux-i586.tar.gz解压#tar zxvf jdk-7-linux-i586.tar.gz#mkdir /usr/java#mv jdk1.7.0 /usr/java2、设置环境变量#vi /etc/profileexport JAVA_HOME=/usr/local/jdk1.7.0export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jarexport PATH=$JAVA_HOME/bin:$PATH保存退出:wq!3、使环境变量生效#source /etc/profile4、测试JDK#java –version三、TOMCAT的安装1、tomcat安装目录将TOMCAT安装在/usr/local/tomcat62、设置环境变量#vi /etc/profileexport TOMCAT_HOME=/usr/local/tomcat6export CATALINA_HOME=/usr/local/tomcat6export CATALINA_BASE=/usr/local/tomcat6保存退出:wq!3、使环境变量生效#source /etc/profile4、修改TOMCA T配置文件server.xml修改TOMCAT配置文件/usr/local/tomcat6/conf/server.xml 将以下内容<Host name="localhost" appBase="webapps".../>修改为<Host name="localhost" appBase="/usr/local/www/web" .../>5、启动TOMCA T/usr/local/tomcat6/bin/startup.sh6、关闭TOMCA T/usr/local/tomcat6/bin/shutdown.sh四、同一linux系统下安装多个TOMCAT1、tomcat安装目录将TOMCAT安装在/usr/local/tomcat6_22、设置环境变量#vi /etc/profileexport TOMCAT_2_HOME=/usr/local/tomcat6_2export CATALINA_2_HOME=/usr/local/tomcat6_2export CATALINA_2_BASE=/usr/local/tomcat6_2保存退出:wq!3、使环境变量生效#source /etc/profile4、修改TOMCA T配置文件server.xml修改TOMCAT配置文件/usr/local/tomcat6_2/conf/server.xml将以下内容<Server port="8005" shutdown="SHUTDOWN">...<Connector port="8080" protocol="HTTP/1.1" ...<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /><Host name="localhost" appBase="webapps".../>修改为<Server port="9005" shutdown="SHUTDOWN">...<Connector port="9090" protocol="HTTP/1.1" ...<Connector port="9009" protocol="AJP/1.3" redirectPort="8443" /><Host name="localhost" appBase="/usr/local/www/web".../>5、修改TOMCA T配置启动文件startup.sh修改TOMCA T配置启动文件/usr/local/tomcat6_2/bin/startup.sh 在exec上添加以下内容export JAVA_HOME=/usr/java/jdk1.7.0export CLASSPATH=$JAVA_HOME/libexport PATH=$JAVA_HOME/binexport CATALINA_HOME=$CATALINA_2_HOMEexport CATALINA_BASE=$CATALINA_2_BASE6、修改TOMCA T配置启动文件shutdown.sh修改TOMCAT配置启动文件/usr/local/tomcat6_2/bin/shutdown.sh 在exec上添加以下内容export JAVA_HOME=/usr/java/jdk1.7.0export CLASSPATH=$JAVA_HOME/libexport PATH=$JAVA_HOME/binexport CATALINA_HOME=$CATALINA_2_HOMEexport CATALINA_BASE=$CATALINA_2_BASE7、启动TOMCA T/usr/local/tomcat6_2/bin/startup.sh8、关闭TOMCA T/usr/local/tomcat6_2/bin/shutdown.sh五、Nginx 0.8.46的安装1、安装Nginx所需的pcre库tar zxvf pcre-8.10.tar.gzcd pcre-8.10/./configuremake && make installcd ../安装pcre成功后,继续安装nginx2、安装Nginx1、上传nginx-0.7.63.tar.gz 至/usr/local2、执行如下命令解压nginx:tar zxvf nginx-0.8.46.tar.gzcd nginx-0.8.46/1.#cd /usr/local2.#tar zxvf nginx-0.7.63.tar.gz3、编译安装nginx1.#cd nginx-0.7.632.#./configure --user=wcity --group=wcity--prefix=/usr/local/nginx--with-http_stub_status_module --with-http_ssl_module (user改为你安装的用户、group改为你安装的组)#启动server 状态页和https模块make && make installcd ../3、创建Nginx日志目录mkdir -p /data/logschmod +w /data/logschown -R wcity:wcity /data/logs4、创建并修改Nginx配置文件nginx.conf①、在/usr/local//nginx/conf/目录中创建nginx.conf文件:vi /usr/local/nginx/conf/nginx.conf修改nginx.conf配置文件如下:user wcity wcity;worker_processes 4;worker_rlimit_nofile 65535;error_log /usr/local/nginx/logs/error.log crit;pid /usr/local/nginx/nginx.pid;events {use epoll;worker_connections 65535;}http {include mime.types;default_type application/octet-stream;server_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_max_body_size 8m;sendfile on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;fastcgi_intercept_errors on;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;upstream http://10.46.51.159 {server 10.46.51.159:8080 weight=5;server 10.46.51.159:8081 weight=5;}location ~ \.(jsp|jspx|do|htm)?$ {proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_pass http:// 10.46.51.159; #转向tomcat处理}location ~ (/dwr/)? {proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_pass http:// 10.46.51.159; #转向tomcat处理}5、检查配置文件nginx.conf是否正确修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:1.#/usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:the configuration file /usr/local/nginx/conf/nginx.conf syntax is okthe configuration file /usr/local/nginx/conf/nginx.conf was tested successfully如果提示unknown host,则可在服务器上执行:ping 如果也是同样提示unknown host则有两种可能:a、服务器没有设置DNS服务器地址,查看/etc/resolv.conf下是否设置,若无则加上b、防火墙拦截6、启动nginx的命令1.#/usr/local/nginx/sbin/nginx这时,输入以下命令查看Nginx 主进程号:1.ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'7、停止nginx的命令1.#/usr/local/nginx/sbin/nginx -s stop8、在不停止Nginx服务的情况下平滑变更Nginx配置a、修改/usr/local/nginx/conf/nginx.conf配置文件后,请执行以下命令检查配置文件是否正确:1./usr/local/nginx/sbin/nginx -t如果屏幕显示以下两行信息,说明配置文件正确:1.the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok2.the configuration file /usr/local/nginx/conf/nginx.conf was tested successfullyb、这时,输入以下命令查看Nginx 主进程号:1.ps -ef | grep "nginx: master process" | grep -v "grep" | awk -F ' ' '{print $2}'屏幕显示的即为Nginx 主进程号,例如:6302这时,执行以下命令即可使修改过的Nginx配置文件生效:1.kill -HUP 6302或者无需这么麻烦,找到Nginx 的Pid文件:1.kill -HUP `cat /usr/local/nginx/nginx.pid`9、nginx启动好后启动tomcat此时输入http://主机ip地址即可看到“My web!”10、配置开机自动启动Nginxvi /etc/rc.local在末尾增加以下内容:/usr/local//nginx/sbin/nginx六、Tomcat集群配置1、分别打开tomcat1和tomcat2下conf中server.xml<Server port="8005" shutdown="SHUTDOWN"><!-- Define a non-SSL HTTP/1.1 Connector on port 8080 --><Connector port="8080" maxHttpHeaderSize="8192"m axThreads="150" minSpareThreads="25" m axSpareThreads="75"enableLookups="false" redirectPort="8443" acceptCount="100"connectionTim eout="20000" disableUploadTimeout="true" /><!-- Define an AJP 1.3 Connector on port 8009 --><Connector port="8009" enableLookups="false" redirectPort="8443"protocol="AJP/1.3" />找到<Engine name="Catalina" defaultHost="localhost">Tomcat1下的修改为<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1"> Tomcat2下的修改为<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">2、修改tomcat1中的Cluster classNametomcat1找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>修改为<Cluster className="org.apache.catalina.ha.tcp.Sim pleTcpCluster"channelSendOptions="6"><Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false"notifyListenersOnReplication="t rue"/><!--<Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false"notifyListenersOnReplication="t rue"m apSendOptions="6"/>--><Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.M castService"address="228.0.0.5"bind="192.168.0.51"port="45564"frequency="500"dropTim e="3000"/><Receiver className="org.apache.catalina.tribes.transport.nio.NioR eceiver"address="192.168.0.51"autoBind="100"port="4001"selectorTim eout="100"m axThreads="6"/><Sender className="org.apache.catalina.tribes.transport.Replicatio nTransmitter"><Transport className="org.apache.catalina.tribes.transport.nio.P ooledParallelSender"/></Sender><Interceptor classNam e="org.apache.catalina.tribes.group.intercept ors.TcpFailureDetector"/><Interceptor classNam e="org.apache.catalina.tribes.group.intercept ors.MessageDispatch15Interceptor"/></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter= ".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.ht m;.*\.ht m l;.*\.css;.*\.txt;"/><ClusterListener className="org.apache.catalina.ha.session.JvmRoute SessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSe ssionListener"/></Cluster>3、修改tomcat2中的Cluster classNametomcat2找到<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>修改为<Cluster className="org.apache.catalina.ha.tcp.Sim pleTcpCluster"channelSendOptions="6"><Manager className="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="t rue"/><!--<Manager className="org.apache.catalina.ha.session.BackupManager" expireSessionsOnShutdown="false"notifyListenersOnReplication="t rue"m apSendOptions="6"/>--><Channel className="org.apache.catalina.tribes.group.GroupChannel"> <Membership className="org.apache.catalina.tribes.membership.M castService"address="228.0.0.5"bind="192.168.0.50"port="45564"frequency="500"dropTim e="3000"/><Receiver className="org.apache.catalina.tribes.transport.nio.NioR eceiver"address="192.168.0.50"autoBind="100"port="4000"selectorTim eout="100"m axThreads="6"/><Sender className="org.apache.catalina.tribes.transport.Replicatio nTransmitter"><Transport className="org.apache.catalina.tribes.transport.nio.P ooledParallelSender"/></Sender><Interceptor classNam e="org.apache.catalina.tribes.group.intercept ors.TcpFailureDetector"/><Interceptor classNam e="org.apache.catalina.tribes.group.intercept ors.MessageDispatch15Interceptor"/></Channel><Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter= ".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.ht m;.*\.ht m l;.*\.css;.*\.txt;"/><ClusterListener className="org.apache.catalina.ha.session.JvmRoute SessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSe ssionListener"/></Cluster>还需要在程序的web.xml里面</web-app>前面加入以下这句话<distributable/>session同步到这里设置完毕。
Nginx+tomcat集群并实现session共享(广播机制、redis 两种方式)本帖最后由小蜀哥哥于 2017-9-5 12:51 编辑简介:随着互联网的飞速发展,互联网的用户也飞速增加。
随之而来就是如何解决大量用户访问导致高并发的问题,倘若用单机版的tomcat在理想状态下能够承受的并发访问量大概为150到200左右,为了解决高并发就需要引入负载均衡技术。
负载均衡就是一个web服务器解决不了的问题可以通过多个web服务器来平均分担压力来解决,并将发过来的请求被平均分配到多个后台web服务器来处理,这样压力就被分解开来。
如:将同一个系统部署到多台tomcat服务器,每个tomcat服务器都可以独立提供服务——tomcat集群,并且通过负载均衡技术反向代理tomcat集群,这样既可提供系统的访问压力。
负载均衡技术有两种方式实现:(1) 硬件负载均衡——如F5 (2)软件负载均衡——如Nginx、Apache等,但是硬件负载均衡的成本比较大,所以一般都采用软件负载均衡。
而很多大型网站如京东、淘宝都采用Nginx负载均衡解决高并发问题,所有我们这里也采用Nginx实现负载均衡,反向代理tomcat集群。
一.Nginx+tomcat广播机制实现session共享1. 环境准备2. Nginx安装与启动(1) 解压Nginx压缩包(2) 双击nginx.exe启动Nginx,在浏览器输入http://localhost展示如下页面即表示安装成功3. Tomcat集群(1) 解压apache-tomcat-7.0.69.zip成两个tomcat1、tomcat2(2) 修改tomcat1的配置文件conf/server.xml1). 修改server的port端口为180052). 修改Connector的port端口为180803). 修改<Connector port="18009"protocol="AJP/1.3" redirectPort="8443" />4). 修改Engine添加jvmRoute="tomcat"5). 在<Engine>下添加如下配置文件[XML] 纯文本查看 复制代码01 02 03 04 05 06 07 08 09 10 1<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"><ManagerclassName="org.apache.catalina.ha.session.DeltaManager"expireSessionsOnShutdown="false"notifyListenersOnReplication="true"/><ChannelclassName="org.apache.catalina.tribes.group.GroupChannel"> <MembershipclassName="org.apache.catalina.tribes.membership.McastService" address="228.0.0.4" port="45564" frequency="500" dropTime="3000"/><ReceiverclassName="org.apache.catalina.tribes.transport.nio.NioReceiver" address="localhost" port="14000" autoBind="100" selectorTimeout="5000" maxThreads="6"/> <SenderclassName="org.apache.catalina.tribes.transport.ReplicationTransmitt er"><Transport1 12 13 14 15 16 17 18 19 className="org.apache.catalina.tribes.transport.nio.PooledParallelSe nder"/></Sender><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.TcpFailureD etector"/><InterceptorclassName="org.apache.catalina.tribes.group.interceptors.MessageDisp atch15Interceptor"/></Channel><ValveclassName="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/> <ValveclassName="org.apache.catalina.ha.session.JvmRouteBinderValve"/> <ClusterListenerclassName="org.apache.catalina.ha.session.JvmRouteSessionIDBinderLis tener"/><ClusterListenerclassName="org.apache.catalina.ha.session.ClusterSessionListener"/> </Cluster>(3) tomcat2操作同上,修改位置参照tomcat1,修改tomcat2的配置文件conf/server.xml1). 修改server 的port 端口为28005同tomcat1修改server 的port 端口2). 修改Connector 的port 端口为28080同tomcat1修改Connector 的port3). 修改<Connector port="28009"protocol="AJP/1.3" redirectPort="8443" />同tomcat1修改操作4). 修改Engine 添加jvmRoute="tomcat"同tomcat1该操作5). 在<Engine>下添加如下配置文件同tomcat1的该操作(4) 修改Nginx 安装目录下conf/nginx.conf 文件4. 创建Web项目并测试广播机制的session共享(1) 创建一个Web项目,名称为TestJQ(2) 编辑index.jsp的内容如下(3) 在WEB-INF下的web.xml中加入<distributable/>(4) 将该web项目分部复制到tomcat1和tomcat2的webapps 目录下(5) 分别修改tomcat1和tomcat2下web项目的index.jsp内容如下(6) 启动tomcat1和tomcat2(7) 在Nginx安装目录下,进入cmd命令模式执行如下命令(8) 测试,在浏览器输入http://localhost/TestJQ。
Tomcat配置⽂件详解打开Tomcat的配置⽬录,我们会发现下⾯的配置⽂件:server.xml:Tomcat的主配置⽂件,包含Service, Connector, Engine, Realm, Valve, Hosts主组件的相关配置信息;web.xml:遵循Servlet规范标准的配置⽂件,⽤于配置servlet,并为所有的Web应⽤程序提供包括MIME映射等默认配置信息;context.xml:所有host的默认配置信息;logging.properties:⽇志相关配置;tomcat-users.xml:Realm认证时⽤到的相关⾓⾊、⽤户和密码等信息;Tomcat⾃带的manager默认情况下会⽤到此⽂件;在Tomcat中添加/删除⽤户,为⽤户指定⾓⾊等将通过编辑此⽂件实现;catalina.policy:Java相关的安全策略配置⽂件,在系统资源级别上提供访问控制的能⼒,以安全模式启动Tomcat会使⽤这个配置catalina.properties:Tomcat内部package的定义及访问相关的控制,也包括对通过类装载器装载的内容的控制;Tomcat在启动时会事先读取此⽂件的相关设置;jaspic-providers.xml:⽤户认证配置⽂件这篇博客就来介绍下这⼏个配置⽂件的作⽤,以及常⽤的配置选项。
server.xml配置server.xml是Tomcat的主配置⽂件,可以对Service, Connector, Engine, Realm, Valve, Hosts等主组件进⾏相关配置。
<!-- port: 接收shutdown指令的端⼝,默认仅允许通过本机访问,默认为8005;shutdown:发往此Server⽤于实现关闭tomcat实例的命令字符串,默认为SHUTDOWN;使⽤⽅式:telnet localhost 8005,输⼊SHUTDOWN即可关闭tomcat如果你不配置这两个属性,Tomcat的这种关闭机制还是会运⾏的。
Nginx+Tomcat配置为什么使用Nginx?Apache∙经典的Web服务器∙除了慢没有别的缺点了∙Apache2对fcgi支持并不好∙非常好用的proxy和proxy_ajp(很多人用它作为tomcat的前端)∙不支持epoll(这年头,epoll几乎是性能的必备)Nginx∙速度快,占用资源少∙杀手级的proxy和rewrite∙非常不错的静态文件能力∙最适合作为整个网站的前端服务(将php、svn等不同请求发送往后端apache)∙其他功能马马虎虎代理服务器,也是一个 IMAP/POP3/SMTP代理服务器。
已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而被人们广泛使用了。
大多数人选择它主要考虑到的是它的高并发和负载均衡。
安装Nginx1. tar zxvf nginx0.8.36.tar.gz2、编译安装nginxcd nginx-0.7.44./configure --with-http_stub_status_module --with-http_ssl_module --prefix=/usr/local/nginx执行后,可能会提示 ./configure: error: the HTTP rewrite module requires the PCRE library.这个错误,是缺少pcre 包,可用yum install pcre pcre-devlel来解决3、make && make install4、nginx安装成功后的安装目录为/usr/local/nginx5.编辑配置文件nginx.conf#user www www;worker_processes 8; #启动进程数,可根据机器核数来修改error_log /usr/local/nginx/logs/nginx_error.log crit; #全局错误日志及PID文件pid /usr/local/nginx/nginx.pid;worker_rlimit_nofile 65535;events{use epoll;worker_connections 65535; #工作模式及连接数上限}http #设定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; #定义的日志格式和存放路径#General Optionsserver_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_body_buffer_size 8m; #256kserver_tokens off;ignore_invalid_headers on;recursive_error_pages on;server_name_in_redirect off;sendfile on;#timeoutskeepalive_timeout 60;#client_body_timeout 3m;#client_header_timeout 3m;#send_timeout 3m;#TCP Optionstcp_nopush on;tcp_nodelay on;#size limitsclient_max_body_size 50m;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml;gzip_vary on;upstream {ip_hash;server x.x.x.x:8080 max_fails=0 weight=1;server x.x.x.x:8080 max_fails=0 weight=1; #8080为tomcat端口 }server {listen 80 default;rewrite ^(.*) / permanent;#charset koi8-r;#access_log logs/host.access.log main;#error_page 404 /404.html;# redirect server error pages to the static page /50x.html #error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}}server{listen 80;server_name ;index index.php index.html index.htm;root /http;access_log /data/logs/.log combined;error_log /data/logs/error_test.xxx.log;#expireslocation ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location ~ .*\.(js|css)?${expires 24h;}location /nginxstatus {stub_status on;access_log off;}# location ~ .*\.jsp?$location /{proxy_pass http://npduxiu;proxy_redirect off;# proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;proxy_set_header X-Forwarded-For$proxy_add_x_forwarded_for;proxy_set_header Connection Close;proxy_set_header X-Forwarded-For $remote_addr; error_page 404 /404.html;error_page 500 502 503 504 /50x.html;# location = /50x.html {# root html;# }}}}6、修改/usr/local/nginx/conf/nginx.conf配置文件后,用命令/usr/local/nginx/sbin/nginx -t 检查配置文件是否正确:7、启动nginx的命令/usr/local/nginx/sbin/nginx8、停止nginx的命令/usr/local/nginx/sbin/nginx -s stop9、在不停止Nginx服务的情况下加载Nginx配置kill -HUP `cat /usr/local/nginx/nginx.pid`10.nginx网站开启后(已启用stub_stauts),可用/nginxstatus查看nginx状态active connections -- 对后端发起的活动连接数server accepts handled requests -- nginx 总共处理的连接, 成功创建了几次握手总共处理了多少个请求reading -- nginx 读取到客户端的Header信息数writing -- nginx 返回给客户端的Header信息数waiting -- 开启 keep-alive 的情况下,这个值等于 active - (reading + writing)安装Tomcat下面开始Tomcat的安装了,那就更简单了,网上文档也是一大把Tomcat安装一、jdk的安装安装的jdk为:jdk-6u21-linux-x64.bin1.sh jdk-6u17-linux-x64-rpm.bin2.安装程序在问您是否愿意遵守刚才看过的许可协议。
Apache服务器和nginx的优缺点:我们之前大量使用Apache来作为HTTPServer。
Apache具有很优秀的性能,而且通过模块可以提供各种丰富的功能。
1)首先Apache对客户端的响应是支持并发的,运行httpd这个daemon进程之后,它会同时产生多个孩子进程/线程,每个孩子进程/线程分别对客户端的请求进行响应;2)另外,Apache可以提供静态和动态的服务,例如对于PHP的解析不是通过性能较差的CGI实现的而是通过支持PHP的模块来实现的(通常为mod_php5,或者叫做apxs2)。
3)缺点:因此通常称为Apache的这种Server为process-based server ,也就是基于多进程的HTTPServer,因为它需要对每个用户请求创建一个孩子进程/线程进行响应;这样的缺点是,如果并发的请求非常多(这在大型门户网站是很常见的)就会需要非常多的线程,从而占用极多的系统资源CPU和内存。
因此对于并发处理不是Apache的强项。
4)解决方法:目前来说出现了另一种WebServer,在并发方面表现更加优越,叫做asynchronous servers异步服务器。
最有名的为Nginx和Lighttpd。
所谓的异步服务器是事件驱动程序模式的event-driven,除了用户的并发请求通常只需要一个单一的或者几个线程。
因此占用系统资源就非常少。
这几种又被称为lightweight web server。
举例,对于10,000的并发连接请求,nginx可能仅仅使用几M的内存;而Apache 可能需要使用几百M的内存资源。
2. 实际中单一的使用:1)关于单一使用Apache来作为HTTPServer的情况我们不用再多做介绍,非常常见的应用;上面我们介绍到Apache对于PHP等服务器端脚本的支持是通过自己的模块来实现的,而且性能优越。
2)我们同样可以单单使用nginx或者lighttpd来作为HTTPServer来使用。
Linux软件安装一、Pcre+nginx + nginx_upstream_jvm_route安装a.安装pcretar zxvf pcre-7.2.tar.gzcd pcre./configure –prefix = /pcreMake;make installb,安装nginxtar zxvf nginx-0.6.32.tar.gzcd nginx-0.6.32#patch -p0 < ./nginx-upstream-jvm-route-read-only/jvm_route.patch./configure –prefix=/nginx –with-pcre=/pcre –with-http_rewrite_module--add-module=/root/nginx-upstream-jvm-route-read-only#make;#make install二、修改nginx.conf文件修改成以下内容:#user nobody;worker_processes 5;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {use epoll;worker_connections 2048;}http {upstream backend {server localhost:8087 invalid=web_tomcat2; #负载均衡服务器server localhost:8088 invalid=web_tomcat1; #负载均衡服务器jvm_route $cookie_JSESSIONID|sessionid reverse;}include mime.types;default_type application/octet-stream;charset UTF-8;server_names_hash_bucket_size 128;client_header_buffer_size 32k;large_client_header_buffers 4 32k;client_max_body_size 20m;limit_rate 1024k;sendfile on;tcp_nopush on;keepalive_timeout 60;tcp_nodelay on;fastcgi_connect_timeout 300;fastcgi_send_timeout 300;fastcgi_read_timeout 300;fastcgi_buffer_size 64k;fastcgi_buffers 4 64k;fastcgi_busy_buffers_size 128k;fastcgi_temp_file_write_size 128k;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_http_version 1.0;gzip_comp_level 2;gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;#limit_zone crawler $binary_remote_addr 10m;server {listen 80;server_name localhost;index index.jsp index.htm index.html;root /usr/local/program/xhxw_web;#access_log logs/host.access.log main;location / {proxy_pass http://backend; #设为反向代理proxy_redirect off;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;}location ~ .*\.(htm|html|ico|gif|jpg|jpeg|png|bmp|swf)${expires 30d;}location ~ .*\.(js|css)?${expires 1h;}location /Nginxstatus {stub_status on;access_log off;}log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ''"$http_user_agent" $http_x_forwarded_for';#access_log off;}server {listen 80;server_name ;index index.jsp index.htm index.html;root /usr/local/program/xhxw;#access_log logs/host.access.log main;location / {proxy_pass http://localhost:8058;proxy_redirect off;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $http_host;}}}测试配置文件是否有错/usr/local/nginx/sbin/nginx –t如果出现:the configuration file /usr/local/nginx/conf/nginx.conf syntax is okconfiguration file /usr/local/nginx/conf/nginx.conf test is successful说明配置成功三、Tomcat配置文件修改修改server.xml在<Engine name="Catalina" defaultHost="localhost"> 加上jvmRoute="web_tomcat1"添加后:<Engine name="Catalina" defaultHost="localhost" jvmRoute="web_tomcat1">。
在<Engine name="Catalina" defaultHost="localhost" jvmRoute="web_tomcat1">下面添加<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"channelSendOptions="8"><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="224.0.0.4"port="45564"frequency="500"dropTime="3000"/><Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"address="auto"port="4001"autoBind="100"selectorTimeout="5000"maxThreads="6"/><!-- timeout="60000"--><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=""/><Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/><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.JvmRouteSessionIDBinderListener"/><ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/></Cluster>多个tomcat的话一定要修改成不同的port .port="4001"需要修改程序web.xml ,</web-app>前面加入以下这句话<distributable/>session同步到这里设置完毕。