Nginx+tomcat+memcache应用集群负载均衡安装部署说明

本文详细介绍了如何在Linux环境下安装配置Nginx、Memcache以及Tomcat,以实现应用集群的负载均衡。首先,通过Yum安装Nginx及相关依赖,配置Nginx的proxy_cache进行内容缓存。接着,安装Memcache并设置防火墙规则。最后,配置Tomcat集群实现session共享,并集成Memcache进行session持久化。通过这种方式,可以提高系统的稳定性和性能。
摘要由CSDN通过智能技术生成

1. nginx安装配置

yum -y install openssl-devel

安装nginx所需的pcre

yum方式安装:yum -y install pcre-devel

tar方式安装:

tar xvzf pcre-8.12.tar.gz
cd pcre-8.12
./configure --disable-shared --with-pic
make

make install

 

安装nginx

tar xvzf nginx-0.8.51.tar.gz

cd nginx-0.8.51

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

make

make install

 

配置nginx

 vi /usr/local/nginx/conf/nginx.conf

user  nobody;
worker_processes  1;
error_log  logs/error.log  info;
#pid        logs/nginx.pid;
events {
    use epoll;
    worker_connections  1024;(根据服务器的open files配置.查看open files的命令:ulimit -a)
}

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"';
    sendfile        on;
    keepalive_timeout  65;
     #设置Web缓存区名称为cache_one,内存缓存空间大小为100MB1天没有被访问的内容自动清除,硬盘缓存空间大小为1GB
    proxy_cache_path /usr/local/nginx/cache_data levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=1g;
    
    upstream www.test.com {
      #ip_hash策略将同一IP的所有请求都转发到同一应用服务器
      ip_hash; 
      server localhost:8080;
      server localhost:8081;
    }
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;  
        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://www.test.com;
            proxy_set_header X-Real-IP $remote_addr;
            client_max_body_size 100m;
        }
error_page   500 502 503 504  /50x.html;
location ~* \.(gif|jpg|jpeg|png|bmp)$ {
           proxy_cache cache_one;
           proxy_cache_valid 200 302 304 1h;
           proxy_cache_key $host$uri$is_args$args;
           proxy_pass http://www.test.com;
           add_header Last-Modified $date_gmt;
           add_header Via $server_addr;
           expires 30d;
        }
    }
}

2. memcache安装配置

安装依赖包libevent

tar xvzf libevent-1.4.9-stable.tar.gz
cd libevent-1.4.9-stable
./configure -prefix=/usr
make

make install

安装memcache

#cd memcached
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent //必须指定libevent否则,这步无法通过
#make
#make install

memcached加入到防火墙允许访问规则中,默认端口是11211

启动memcache ,以下命令运行memcached
/usr/local/memcached/bin/memcached -d -m 200 –l  192.168.1.201 –p  11211 -P  /tmp/memcached.pid

如果运行报错,说libevent.so库找不到,请将libevent.so文件复制到/usr/lib目录下
#cp -f /usr/local/libevent/lib/* /usr/lib/

拷贝完了,还不行?还说找不到so文件?
#LD_DEBUG=libs /usr/local/memcached/bin/memcached -v
用这个命令看看它都到哪儿找去了,果然位置不对
vi /etc/ld.so.conf
添加/usr/lib
/usr/local/lib
/usr/lib64

然后在任意目录执行/sbin/ldconfig 使你新配置的库文件位置生效。
然后就可以成功启动了。

-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是200MB,默认64MB
-l是监听的服务器IP地址,多个memcache服务器节点,请用ip地址,本机可以用localhost
-c选项是最大运行的并发连接数,默认是1024,按照你服务器的负载量来设定,
-P是设置保存Memcachepid文件,我这里是保存在 /tmp/memcached.pid

 

如果要结束Memcache进程,执行:
# kill `cat /tmp/memcached.pid`

 

 

3. tomcat配置

配置tomcat集群实现session共享

vi $tomcat/conf/server.xml

修改Engine部分配置 <!--加入jvmRoute="jvm1" 两个tomcat的值不能相同-->
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1"> 

添加memcachedtomcat集成包

Memcached-session-manager-1.3.0.jar

msm-javolution-serializer-jodatime-1.3.0.jar

msm-javolution-serializer-cglib-1.3.0.jar

memcached-2.4.2.jar

msm-javolution-serializer-1.3.0.jar

将这些文件放到每台tomcat服务器的tomcat/lib目录下

 

修改每台服务器的tomcat配置文件:tomcat/conf/context.xml文件,<Context>根元素下添加如下配置。

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

         memcachedNodes="n1:192.168.1.201:11211,n2:192.168.1.206:11211"

         requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"      transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"

         sessionBackupAsync="false"

         sessionBackupTimeout="100"

         copyCollectionsForSerialization="false"

         failoverNodes="n2"

/>

说明:memcachedNodes节点配置的是所有memcache服务器节点,failoverNodes是故障转义节点,比如说206上的tomcat服务器出了故障,或者宕机了,memcache会自动将session转移到201上面。

打印memcache日志

$CATALINA_HOME/conf/logging.properties文件中添加de.javakaffee.web.msm.level=FINE,就可以在catalina.out的日志中看到详细的session存取情况

重启每个服务器上的tomcat服务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值