您的位置:首页 > 数据库 > Memcache

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

2018-03-20 13:29 1086 查看
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,内存缓存空间大小为100MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为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
4000
;
            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是设置保存Memcache的pid文件,我这里是保存在 /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"> 
添加memcached的tomcat集成包
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服务
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: