[續1]記錄“裝nginx+3個tomcat+mysql,測一下1000併發訪問的應用性能”的過程

在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。搞定。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章