本主题操作环境为rhel6.5.x86_64的虚拟机
memcache的安装请参阅 Memcache认识及php memcache扩展
1. 配置java环境
下载一个jdk包,以包格式为tar.gz为例依次执行以下动作:
tar -zxf jdk...tar.gz -C /usr/locl/jdk
接下来添加java环境变量
vim /etc/profile#在最后添加以下内容
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
完成以上步骤之后可以通过以下命令进行测试
which javac
which java
或者写一个Java程序测试一下(保存为test.java):
public class HelloWorld {
/* 第一个Java程序
* 它将打印字符串 Hello World
*/
public static void main(String []args) {
System.out.println("Hello World"); // 打印 Hello World
}
}
依次运行:
javac test.java
java test
输出结果为:Hello World表示你会写Java了,年轻人你很厉害嘛
2. 配置apache-tomcat
本人环境中使用的是apache-tomcat-*.*.*.tar.gz
直接解压到/usr/local
tar -zxf apache-tomcat-\*.\*.\*.tar.gz -C /usr/locl/tomcat
测试一下tomcat是否能够正常跑起来:
启动服务
cd /usr/local/tomcat/bin
./startup.sh#开启tomcat
./shutdown.sh #关闭tomcat
查看tomcat的启动状态:
[root@localhost bin]# ps -ef | grep tomcat
[root@localhost bin]# netstat -anltp | grep 8080
在浏览器中输入你的tomcat所在主机ip加端口8080进行测试访问,如果输出内容为tomcat测试页则表示apache-tomcat成功了
接下来就是为我们的tomcat配置memcache了:
首先我们需要一些java的jar包:
这些包你可以通过任何途径下载,我是在250上下的,然后全部放在/usr/local/tomcat/lib下
然后修改配置文件:
vim /usr/local/tomcat/confi/context.xml
<Context docBase="F:/tomcats/tomcat-7.0.2_2/webapps" path= "/msm" reloadable= "true" >
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.5.1:11211,n2:172.25.5.2:11211"#因为这里我需要做集群、failover所以配置了两台主机
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>
到这里我得说一下,我这里配置了两台Tomcat服务主机172.25.5.1和172.25.5.2,用来做集群,所以两台主机的基本配置是一样的,只是在上边这个/usr/local/tomcat/confi/context.xml文件中的failoverNodes=”“参数两台主机都指向了对方,需要注意
这样的话我们就算是配置好了一台主机,如果嫌麻烦,我们可以快速配置另一台主机:
scp -r /usr/local/jdk root@otherpc:/usr/local/jdk
scp -r /usr/local/tomcat root@otherpc:/usr/local/tomcat
记得在另外一台主机中添加java环境变量:
vim /etc/profile#在最后添加以下内容
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
记得在所有一切配置结束后进行验证!
3. 安装Nginx(在第三台主机172.25.5.3上,要做Nginx负载均衡)
下载源码包解压
安装nginx-sticky-module
#基于cookie实现会话保持的第三方模块
模块下载地址:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng/get/master.tar.gz
并解压到nginx-1.10.1相同目录中,然后编译安装Nginx,注意本示例只是针对nginx-sticky-module模块,其他模块请按需添加!!!
cd nginx-1.10.1
./configure --prefix=/opt/nginx --add-module=../nginx-sticky-module-ng
make && make install
配置Nginx
vim /opt/nginx/conf/nginx.conf
需要添加或者修改的内容如下:
upstream tomcat{
sticky;
server 172.25.5.1:8080;
server 172.25.5.2:8080;
}
server {
listen 80;
server_name localhost;
…..
location ~ \.jsp$ {
proxy_pass http://tomcat;
}
}
所有配置完成,检查各相关服务状态:Nginx、tomcat、memcache进行验证测试:
首先在两台tomcat主机中写好测试页,然后通过浏览器外部访问Nginx主机172.25.5.3,不出问题就会看到负载均衡的结果,然后写一个表单来测试一下会话保持,结果就是用户提交数据到一台后端主机,即使这台主机挂掉了,另外一台主机会接替挂掉的主机继续提供服务,而且用户提交的数据是不会丢失的。