分类: 系统运维
2016-04-05 15:49:52
http://blog.csdn.net/nerissa/article/details/18961361 ; //参考博客
//相关包下载,含lib所需的jar包
环境:centOS 6.5(64位) 、jdk8_8u5 、tomcat7.054、nginx1.47、libevent-2.0 、memcached-1.4.20
10.1.1.127 // tomcat,nginx,memcached
10.1.1.128 // tomcat
一、tomcat 机配置
1、卸载自带jdk ,采用rpm 包安装
rpm –qa |grep java | xargs rpm -e --nodeps //批量卸载自带的jdk相关包
2、rpm 安装
rpm -ivh jdk-8u5-linux-x64.rpm //默认安装在 /usr/java
mv 改名改为 /usr/java/jdk
java -version //验证安装成功
3、写入环境
vim /etc/profile
JAVA_HOME=/usr/java/jdk
JRE_HOME=/usr/java/jdk/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
source /etc/profile // 环境生效
4.解压tomcat 测试运行
tar –zxf apache-tomcat-7.0.54.tar.gz -C /usr/local
mv apache-tomcat-7.054 tomcat
vim /etc/sysconfig/iptables //防火墙开放8080端口
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
service iptables restart
//开启tomcat,测试tomcat安装成功
二、Memcached 安装配置
1.导入 msm-1.7包到 tom/lib/ ( tomcat 节点都要放
http://chenzhou123520.iteye.com/blog/1650212 //参考博客
2.更改tomcat session保存方式(Non-Sticky,kryo
以下内容加到配置文件里
vim conf/context.xml
memcachedNodes="n1:10.1.1.217:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
3、编译安装libevent
# wget
# tar -zxvf libevent-2.0.21-stable.tar.gz
# cd libevent-2.0.21-stable
# ./configure --prefix=/usr
# make && make install
# cd ../
测试是否安装成功:
# ls -al /usr/lib | grep libevent
4、编译安装Memcached
# wget
# tar -zxvf memcached-1.4.15.tar.gz
# cd memcached-1.4.15/
# ./configure --with-libevent=/usr
# make && make install
# cd ../
测试是否安装成功:
# ls -al /usr/local/bin/mem*
或启动一个memcached进程
# /usr/local/memcached/bin/memcached -d -m 2048 -u root -p 11211 -c 10240 -P /var/run/memcached.pid
5、编译安装magent
编译安装magent-0.6到/usr/local/下(推荐安装magent-0.5稳定版本,因为测试发现magent-0.6虽是最新版本,但是还存在问题,不稳定,第二次访问magent始终会堵塞在那里,只能set一个值。测试了magent-0.5是稳定版本,没有出现只能set一个值的现象,遂推荐安装magent-0.5版本,不过此问题也可以通过修改源码的方式来解决,解决方案参考(重点参考第8楼): )
cd /usr/local mkdir magent cd magent/ wget 解压的文件中ketama.* 是一致性hash的实现 tar -zxvf magent-0.6.tar.gz vi ketama.h 在开头加入 #ifndef SSIZE_MAX # define SSIZE_MAX 32767 #endif ############magent-0.6版本修改内容start############ vi Makefile (magent-0.6版本) LIBS = /usr/lib64/libevent.a /usr/lib64/libm.a 改为 LIBS = -lrt /usr/lib64/libevent.a /usr/lib64/libm.a CFLAGS = -Wall -g -O2 -I/usr/local/include $(M64) 改为 CFLAGS = -lrt -Wall -g -O2 -I/usr/local/include $(M64) ############magent-0.6版本修改内容end############## ############magent-0.5版本修改内容start############ vi Makefile (magent-0.5版本) CFLAGS = -Wall -O2 -g 改为 CFLAGS = -lrt -Wall -O2 -g sed -i "s#LIBS = -levent#LIBS = -levent -lm#g" Makefile ############magent-0.5版本修改内容end############## cp /usr/lib/libevent.a /usr/lib64 ln -s /usr/lib64/libm.so /usr/lib64/libm.a /sbin/ldconfig make cp magent /usr/bin/magent cd ../ 测试magent是否安装成功: 1.启动一个magent进程 magent -u root -n 51200 -l 10.1.1.127 -p 12000 -s 10.1.1.127:11211 2.查看是否启动成功了 ps aux|grep magent
参考:
三、nginx 安装配置 nginx 安装配置 1.源码包安装 #yum install pcre* //nginx 依赖pcre类库 #useradd nginx #tar xf /share/soft/lamp/nginx/nginx-1.4.7.tar.gz -C /usr/src/ #cd /usr/src/nginx-1.4.7 #./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_gzip_static_module --with-http_stub_status_module # make && make install
2.nginx 反向代理,实现负载均衡代理后面两台tomcat 服务器 user nginx nginx; worker_processes 5; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; use epoll; } http { upstream session { server 10.1.1.217:8080 weight=1 max_fails=2 fail_timeout=30s; server 10.1.1.218:8080 weight=1 max_fails=2 fail_timeout=30s; } server { listen 80; server_name 10.1.1.217; root /nginxroot/; location ~ \.(txt|jsp)$ { proxy_pass ; } proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; } } mkdir /nginxroot/
//以上是简单的实现的是对jsp访问的均衡调度,实验随便改的
http://hxq0506.iteye.com/blog/1388971 //参考链接
测试: 启动顺序 tomcat – nginx – memcached
测试页面test.jsp,放入webapps/ROOT:
Server Info: SessionID:<%=session.getId()%> SessionIP:<%=request.getServerName()%> SessionPort:<%=request.getServerPort()%> <% out.println("127"); //标记后端节点 %> 结果:session 保持不变