- 浏览: 90512 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
hairongtian:
我想问一下在GC中的gc roots是什么?教科书的看不懂,能 ...
JVM-GC实践总结(纠正并发线程数 转载)
ulimit -SHn 65535
echo "ulimit -SHn 65535" >>/etc/rc.local
环境:
redhat5.4、pcre-8.12、nginx-upstream-jvm-route-0.1、nginx-1.0.5、apache-tomcat-6.0.33
nginx服务器地址:192.168.0.40
tomcat1:192.168.0.20
tomcat2:192.168.0.30
拓扑如下:
1.安装nginx
tar zxf pcre-8.12.tar.gz
cd pcre-8.12
./configure
make;make install
下载下面的插件安装,否则nginx无法识别tomcat中jvmRoute,从而无法达到session复制的效果。
wget http://friendly.sinaapp.com//LinuxSoft/nginx-upstream-jvm-route-0.1.tar.gz
tar xzf nginx-upstream-jvm-route-0.1.tar.gz
tar xzf nginx-1.0.5.tar.gz
cd nginx-1.0.5
patch -p0 <../nginx_upstream_jvm_route/jvm_route.patch
/configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-pcre=/root/pcre-8.12 --add-module=../nginx_upstream_jvm_route/
#--with-pcre=指向的是pcre的源码包
make;make install
2.配置nginx
vim /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
pid /usr/local/nginx/logs/nginx.pid;
worker_rlimit_nofile 51200;
events {
worker_connections 5000;
}
http {
upstream backend {
server 192.168.0.20:8080 srun_id=tomcat1; //在tomcat的配置里会配置jvmRoute为tomcat1
server 192.168.0.30:8080 srun_id=tomcat2;
jvm_route $cookie_JSESSIONID|sessionid reverse;
}
include mime.types;
default_type application/octet-stream;
#charset gb2312;
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;
server
{
listen 80;
server_name www.baiying.com;
index index.jsp index.htm index.html;
root /usr/www;
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 ~ .*\.(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';
}
}
[root@slave conf]# /usr/local/bin/nginx.sh stop
[root@slave conf]# /usr/local/bin/nginx.sh start
3.安装tomcat
1)安装tomcat_1
tar zxf apache-tomcat-6.0.33.tar.gz
mv apache-tomcat-6.0.33/usr/local/tomcat
cp tomcat-replication.jar /usr/local/tomcat/lib
2)安装tomcat_2,步骤同1)
4.分别在tomcat服务器安装jdk
chmod 755 jdk-6u26-linux-i586-rpm.bin
./jdk-6u26-linux-i586-rpm.bin
cat >>/etc/profile <<EOF
export JAVA_HOME=/usr/java/jdk1.6.0_26
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin
EOF;
source /etc/profile //使环境变量立即生效
5.tomcat集群配置
tomcat1配置:
修改conf/server.xml配置文件
<Engine name="Catalina" defaultHost="localhost" jvmRoute="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="192.168.0.20"
port="4001"
autoBind="100"
selectorTimeout="5000"
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=""/>
<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>
tomcat2配置:
修改conf/server.xml配置文件
<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">
<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="192.168.0.30"
port="4000"
autoBind="100"
selectorTimeout="5000"
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=""/>
<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>
6.session配置
修改web应用里面WEB-INF目录下的web.xml文件,加入标签
<distributable/>
直接加在</web-app>之前
开启网卡组播功能:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
7.创建jsp测试页面
在tomcat1安装路径下建立目录test
mkdir /usr/local/tomcat/webapps/ROOT/test/
vi index.jsp
<html>
<title>
tomcat1 jsp
</title>
<%
String showMessage="Oh My God 192.168.0.20 华仔!";
out.print(showMessage);
%>
</html>
----------------------------
在tomcat2安装路径下建立目录test
mkdir /usr/local/tomcat/webapps/ROOT/test/
vi index.jsp
<html>
<title>
tomcat2 jsp
</title>
<%
String showMessage="Oh My God 192.168.0.30 华仔!";
out.print(showMessage);
%>
</html>
转载自:http://baiying.blog.51cto.com/1068039/731021/
发表评论
-
JVM 运行时数据区(转)
2012-07-11 23:02 1059运行时数据区 java虚拟机定义了若干种程序运行时使用 ... -
图解JVM 内存分配
2012-07-10 23:57 12221.简介 现摘录一段Java5 ... -
JVM-GC实践总结(纠正并发线程数 转载)
2012-07-10 16:27 3547首先感谢阿宝同学的帮 ... -
深入Java虚拟机:JVM中的Stack和Heap
2012-07-10 14:26 1093在JVM中,内存分为两个部分,Stack(栈)和He ... -
JVM分代垃圾回收策略的基础概念
2012-07-10 13:50 1358由于不同对象的生命周期不一样,因此在JVM的垃圾回收策略中 ... -
Java虚拟机(JVM)中的内存设置详解(转载)
2012-07-09 17:13 1136在一些规模稍大的应用 ... -
JVM原理_内存篇(转载)
2012-07-09 16:56 2161一、JVM简介 ... -
JVM参数调优的八条经验(转载)
2012-07-09 14:35 955要想配置好JVM参数,需要对年轻代、年老代、救助空间和永久代有 ... -
Tomcat负载均衡原理详解及配置(Apache2.2.19+Tomcat7.0.12)
2012-06-30 11:45 1231使用Tomcat的童鞋们注意了。为了增加tomcat的性能和稳 ... -
Tomcat和Terracotta服务器将普通的Web应用部署到集群中,实现跨Tomcat节点的session复 制
2012-06-30 11:31 1353本文介绍如何配置Tomcat和Terracotta服务器将普通 ... -
tomcat session 持久化会话
2012-06-30 11:29 1602tomcat6 中关闭服务 会自动把session持久化 ... -
Tomcat集群Session丢失解决方案
2012-06-29 01:38 4406这几天单服务器整合项目很正常,集群的时候问题就来了,配 ... -
linux下的并发数量
2012-06-26 21:32 967在部署系统后,为了增加系统并发量,系统响应速度,做了一些 ... -
网站的静态化处理
2012-06-26 21:10 873urlrewritefilter 下载: htt ... -
linux+nginx+tomcat负载均衡,实现session同步
2012-06-21 15:18 3898花了一个上午的时间研究nginx+tomcat的负载均衡测试, ... -
tomcat6_apache2.2_ajp负载均衡加集群实战 [转]
2012-04-26 16:07 936秀脱linux笔记之tomcat6_apa ... -
JVM内存最大能调多大分析-转帖
2012-02-18 12:48 1389JVM内存最大能调多大分析【经典】 上次用webl ... -
nginx for windows之负载均衡
2011-05-06 17:53 9641.编辑c:\nginx\conf\nginx.conf ... -
Tomcat6性能调优 出现java.lang.OutOfMemoryError: PermGen space
2010-08-03 13:51 1379Tomcat6在部署应用中,Server报错:java.lan ... -
APACHE 2.2.8+TOMCAT6.0.14配置负载均衡
2010-01-21 02:11 0目标: 使用 apache 和 tomcat ...
相关推荐
这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...
Nginx+Tomcat+Memcached实现tomcat集群和session共享 nginx配置
本文将详细介绍如何在Nginx、Tomcat7和Memcached的环境下实现会话保持,确保用户在多台服务器之间切换时仍能保持其会话状态。 首先,我们要理解会话保持的重要性。在分布式系统中,用户可能与集群中的任何一台...
### Nginx+Tomcat+Memcached 共享 Session 集群配置 #### 一、概述 在大型分布式系统中,为了实现高可用性和负载均衡,常常会使用 Nginx 作为反向代理服务器来分发请求到后端多个 Tomcat 实例上。然而,传统的基于...
Nginx+Tomcat+Memcached集群Session共享实例,Nginx 1.81 + tomcat1 + tomcat2 + Memcached 完整可运行 访问根目录下 test.jsp 可看效果
- **反向代理**:Nginx接收来自客户端的请求,然后将这些请求转发到后端的Tomcat服务器集群,隐藏了内部服务器的细节。 - **负载均衡**:Nginx可以基于多种策略(如轮询、最少连接、IP哈希等)分配请求到不同的...
nginx+tomcat+redis集群部署环境,包括nginx tomcat redis及集群部署所需jar包,jedis-2.6.1.jar,commons-pool2-2.2.jar,tomcat-redis-session-manager1.2.jar 具体步骤可以参见我的博文
Nginx+Tomcat7+Memcached集群Session共享 完整例子 主要是利用memcached-session-manager(下面简称msm)开源tomcat插件改变tomcat原始的session存储机制,将session的存储放到分布式缓存memcache中,从而实现对...
标题 "Nginx+Tomcat+Memcached集群Session共享" 描述了在分布式环境中如何通过Nginx反向代理服务器、Tomcat应用服务器集群以及Memcached缓存系统来实现Session的共享。这是一个常见的高可用性和负载均衡解决方案。...
目前只支持tomcat8.5,其它版本的tomcat还没测试,自己配置过很多nginx+tomcat集群+redis实现session共享的系统,经过仔细总结得出这些,可以说是知识的结晶,欢迎大家来下载,不好的地方可以多提,有问题看到的话会...
总之,“Windows+Nginx+Tomcat做负载均衡同时实现session共享Demo”是一个实践性强的教学资源,它涵盖了Web服务集群中的关键技术和最佳实践,对于学习和提升系统架构能力非常有帮助。通过深入理解和实践这个Demo,...
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
3. **Session Replication**:在`Tomcat`集群间复制`session`数据。这需要在`Tomcat`配置中开启`Manager`组件,并确保相同的`session`ID在所有服务器上有效。 4. **Shared Session Store**:如使用数据库、缓存(如...
Nginx+Tomcat+Memcached实现tomcat集群和session共享 tomcat部分
男孩的天职nginx+tomcat集群+redis存储session 下载的是一个pdf文件,文件里面有视频演示下载地址,以及jdk1.8 tomcat8 nginx 1.8安装笔记,绝对可以用 nginx反向代理tomcat集群,请求轮训给集群的tomcat,session...
总之,Windows + Nginx + Memcached + Tomcat 集群session共享方案是一个高效且可靠的架构,它能提高系统的可用性,保证用户会话的连续性,是大规模Web应用常见的部署模式。然而,实际部署时,还需要考虑安全性、...
Nginx+Tomcat+Redis实现应用服务器集群负载均衡和Session共享所需要的所有jar包,包括如下jar包:commons-logging-1.2.jar,commons-pool2-2.6.0.jar,jedis-2.9.0.jar,tomcat-juli-7.0.90.jar,tomcat-redis-...
Nginx+Tomcat+Redis实现session共享,通过Nginx作为前端的负载,把请求分发到后端的Tomcat服务器上,提高并发数;但是单纯的通过Nginx的ip_hash负载是很多问题的。只要用户一切换网络或者后端Tomcat主机宕机session就...