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

[续1]记录“装nginx+3个tomcat+mysql,测一下1000并发访问的应用性能”的过程

2013-01-26 13:35 375 查看
在mysql中手工导入sql文件,

root@vps968:/home/tomcat# mysql -u root -p

Enter password:

mysql> source /home/tomcat/localhost.sql

装memcached,如下:

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
tar zxf libevent-2.0.21-stable.tar.gz

cd libevent-2.0.21-stable

./configure --prefix=/usr

make

make install

tar zxf memcached-1.4.15.tar.gz

cd memcached-1.4.15

./configure --with-libevent=/usr

make

make install

下面摘录一段memcached的说明:

memcached的基本设置:

1.启动Memcache的服务器端:

# /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid

-d选项是启动一个守护进程,

-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

-u是运行Memcache的用户,我这里是root,

-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,

-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,

2.如果要结束Memcache进程,执行:

# kill `cat /tmp/memcached.pid`
也可以启动多个守护进程,不过端口不能重复。

下面把memcached for tomcat搞定,切换到tomcat用户,

wget http://memcached-session-manager.googlecode.com/files/memcached-session-manager-1.6.3.jar
wget http://memcached-session-manager.googlecode.com/files/memcached-session-manager-tc6-1.6.3.jar
wget http://memcached-session-manager.googlecode.com/files/msm-kryo-serializer-1.6.3.jar
wget http://memcached-session-manager.googlecode.com/files/msm-javolution-serializer-1.6.3.jar
wget http://memcached-session-manager.googlecode.com/files/msm-xstream-serializer-1.6.3.jar
wget http://memcached-session-manager.googlecode.com/files/msm-flexjson-serializer-1.6.3.jar
wget https://spymemcached.googlecode.com/files/spymemcached-2.8.4.jar
wget http://memcached-session-manager.googlecode.com/files/javolution-5.4.3.1.jar
cp *.jar tomcat1/lib/

cp *.jar tomcat2/lib/

cp *.jar tomcat3/lib/

继续改tomcat配置,server.xml里<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">3个Tomcat的jvmRoute分别为:tomcat1、tomcat2、tomcat3

context.xml里,<Context>标签内增加下面一段,kryo始终不行,算了,换一个javolution了。

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:127.0.0.1:12000"

sticky="false"

lockingMode="auto"

sessionBackupAsync="false"

sessionBackupTimeout="1000"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:localhost:12000"

requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"

sessionBackupAsync="false"

sessionBackupTimeout="1000"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

copyCollectionsForSerialization="false"

/>

最后配置nginx,配置文件在/usr/local/nginx/conf/nginx.conf,

先改成这样:

...

upstream www.xxxx.net {

server 127.0.0.1:8080 srun_id=tomcat1;

server 127.0.0.1:18080 srun_id=tomcat2;

server 127.0.0.1:28080 srun_id=tomcat3;

jvm_route $cookie_JSESSIONID|sessionid reverse;

}

server {

listen 80;

server_name www.xxxx.net;

charset utf-8;

#access_log logs/host.access.log main;

location / {

root html;

index index.html index.htm;

proxy_pass http://www.xxxx.net;
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;

client_max_body_size 100m;

}

location ~ ^/(WEB-INF)/ {

deny all;

}

...

重启tomcat、nginx。搞定。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: