上次说到了memcache的php运行,这次来说说jsp:全名为Java Server Pages,中文名叫java服务器页面统也有自带
首先配置java环境
首先安装java源码包,系统里面就有,yum就行
我这里用的是rpm安装,一般直接yum就可以了
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
ln -s jdk1.7.0_79/ java
vim /etc/profile
source /etc/profile
80 export JAVA_HOME=/usr/local/java
81 export CALSSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
82 export PATH=$PATH:$JAVA_HOME/bin
安装完成之后测试一下就好了
写一个java.test
1 public class test {
2 public static void main(String[] args)
3 {
4 System.out.println("Hello World!");
5 }
6 }
输出hello World
javac test.java ##javac编译,java运行
java test
环境配置完成后就可以安装tomcat了(tomcat.apache.org) ##tomcat相当于在后端服务器提供服务的一共
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
ln -s apache-tomcat-7.0.37/ tomcat
bin/startup.sh ##这个之后就可以访问了,端口为8080
cd webapps/ROOT/
写一个test.jsp
server4 time is :<%=new java.util.Date() %>
取当前系统时间
之后将两个文件(java,tomcat)复制到另一个服务端去,修改/etc/profilre,写一个test.jsp
server2 time is :<%=new java.util.Date() %>
在nginx端修改配置文件
25 upstream tomcat {
26 server 172.25.36.2:8080;
27 server 172.25.36.4:8080;
28 }
71 location ~ \.jsp$ {
72 proxy_pass http://tomcat;
73 }
测试:在浏览器上输入http://172.25.36.1/test.jsp 就可以看到时间的切换
但是当我们要对后端的数据库写入信息的时候,你在一个后端服务器切换后信息就会清除掉,
所以要加入一个sticky模组,需要重新编译,在原有的编译命令之后添加--add-module=/root/nginx-sticky-module-ng
编译完成之后修改配置文件,按照上明的修改
21 upstream tomcat {
22 sticky; ##粘置,基于cookie的调动
23 server 172.25.36.2:8080;
24 server 172.25.36.4:8080;
25 }
之后修改test.jsp
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session list</b>");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="test.jsp" method="POST">
name:<input type=text size=20 name="dataName">
<br>
key:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
测试:
因为nginx存在后端的健康检查,所以当某一个服务器down掉之后会自动转至另一个服务器上进行,但是有一个弊端,那就是所有提交之前的内容都不会转移,这样会影响用户体验,因此有人提出共享存储的功能,但是这会造成额外的消费,因此我们使用memcache储存m1和m2,后端服务器为t1,t2但是不能让t1和m1为在同一台主机上,因为如果主机出错t1和m1都不能保存好消息,所以我们设置为t1默认将消息发送至m2,这样如果t1所在主机挂掉,m2依然可以保存好消息,m2挂掉的话,t1本身有内存,数据依然不会丢失。
要删除一个jar包,因为这个包是由tomcat调用的memcache管理器,因为我们使用的是7版本的,所以将6的删掉
failovernode:出现故障的时候找哪一个节点