搭建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

clip_image002

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

clip_image004

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!

clip_image006

二、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

clip_image008

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

clip_image010

访问.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

clip_image012

clip_image014解释:当访问.jsp 时 访问负载均衡组 yang指向upstream yang;

clip_image015server1.server2;轮巡。

jsp jsp

clip_image016clip_image017 T1 T2

M1 M2

Nginx 通过jsp访问两个处理服务器 同时将数据交叉备份到m1 m2.(数据不会丢失)

如果没有后端memcached 当T1挂掉 切换到T2 之前在T1的数据就会丢失

在两台虚拟机上安装 memcached /etc/init.d/memcached start

free -m 查看内存信息

clip_image019

面试问 当前可用的内存空间 要看应用的使用机制,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

(两个虚拟机都配置)

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

<html><head><title>Cluster App Test</title></head>

<body>

Server Info:

<%

out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>

<%

out.println("<br> ID " + session.getId()+"<br>");

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>

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 时添加

clip_image021

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)

在最后加上

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

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)

在最后加上

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

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

clip_image023

有这句话 就是对的。

测试:firefox访问172.25.38.6 输入数据,关掉正在运行的