搭建java编译环境
一、java编译环境
1.准备工作:
下载 jdk-7u79-linux-x64.tar.gz 压缩包
解压 tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
在/usr/local/ 下 ln -s jdk1.7.0_79/ java (方便更新软件,更新后只要重新软链接就好)
2.修改环境变量
vim /etc/profile
source /etc/profile (刷新文件)
echo $PATH 查看环境变量
[root@server6 java]# echo $JAVA_HOME
/usr/local/java
[root@server6 java]# echo $CLASSPATH
.:/usr/local/java/lib:/usr/local/java/jre/lib
[root@server6 java]# echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/java/bin
3.测试
写一个java程序:
vim test.java
javac test.java (编译生成.class 文件)
java test
[root@server6 ~]# javac test.java
[root@server6 ~]# ls
anaconda-ks.cfg jdk-7u79-linux-x64.tar.gz
apache-tomcat-7.0.37.tar.gz test.class
install.log test.java
install.log.syslog
[root@server6 ~]# java test
Hello world!
二、jsp的安装支持
1.准备工作
下载 jdk-7u79-linux-x64.tar.gz
解压 tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
在/usr/local/ 下 ln -s apache-tomcat-7.0.37/ tomcat (软链接到 tomcat)
2.使用
默认发布目录:/usr/local/tomcat/webapps/ROOT
开启jsp:在/usr/local/tomcat/bin 下 执行 ./startup.sh
查看jsp的监听端口:netstat -antlp 是8080端口。
3.测试
Firefox中访问172.25.15.1:8080 可以访问到tomcat 默认发布页面
自己编写 tomcat发布页面:
在/usr/local/tomcat/webapps/ROOT 下编写文件 test.jsp
Firefox中访问172.25.38.6:8080/test.jsp 即可
4.配置nginx 分别处理php jsp动态页面
访问 172.25.15.1/test.jsp 即可访问 jsp页面
vim /usr/local/lnmp/nginx/conf/nginx.conf
访问.jsp文件请求是 交给tomcat去处理
5.部署tomcat集群
在另一台虚拟机上配置java jsp 与第一台相同
可以直接cp 第一台/usr/local/ java tomcat 到第二台的相同位置
第二台虚拟机的环境变量也要改变,打开tomcat。
环境说明:server1:nginx tomcat
:server2:tomcat (两台主机tomcat做负载均衡)
修改nginx的配置文件:/usr/local/lnmp/nginx/conf/nginx.conf
解释:当访问.jsp 时 访问负载均衡组 yang指向upstream yang;
server1.server2;轮巡。
jsp jsp
T1 T2
M1 M2
Nginx 通过jsp访问两个处理服务器 同时将数据交叉备份到m1 m2.(数据不会丢失)
如果没有后端memcached 当T1挂掉 切换到T2 之前在T1的数据就会丢失
在两台虚拟机上安装 memcached /etc/init.d/memcached start
free -m 查看内存信息
面试问 当前可用的内存空间 要看应用的使用机制,cache加buffers加free是可用内存,cached 会涉及应用占用,如果是分享机制,则可加上cache 如果是应用独占,不可加。
查看memcached yum install telnet -y
Telnet localhost 11211 (memcached 默认开启11211端口)
stats
add name 0 0 6 (0标示位 0超时时间 6名字的字节数)
get name
delete name
在/usr/local/tomcat/webapps/ROOT 下编写文件 test.jsp
(两个虚拟机都配置)
Cluster App Test
Server Info:
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
");%>out.println("
ID " + session.getId()+"
");String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("Session list");
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"
");System.out.println( name + " = " + value);
}
%>
name:
key:
6.sticky模式的nginx负载
Ip_hash 会涉及cdn的问题,因为多个客户端都访问同一个cdn但是nginx接收的是同一个cdn的ip,所以此时的ip_hash 不合理
所以使用sticky
准备工作:
下载 nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gz
解压到/root/
用源码重新安装nginx 需要关掉nginx ./configure 时添加
Make & make install
修改负载均衡的算法为sticky。开启nginx
把两台虚拟机的tomcat 关掉。
两台虚拟机:把提前下载好的jar包 复制到tomcat/lib
删除掉 memcached-session-manager-tc6-1.5.1.jar (如果你用的是7)
修改 tomcat/conf/context.xml(172.25.15.5)
在最后加上
memcachedNodes="n1:172.25.38.5:11211,n2:172.38.6.2:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
修改 tomcat/conf/context.xml(172.25.15.6)
在最后加上
memcachedNodes="n1:172.25.38.5:11211,n2:172.25.38.6:11211"
failoverNodes="n2"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
两边开启 tomcat
tail -f tomcat/logs/catalina.out
有这句话 就是对的。
测试:firefox访问172.25.38.6 输入数据,关掉正在运行的