tomcat是什么?
omcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
tomcat的使用
1.获取tomcat,jdk资源包,并进行解压
[root@server4 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local
[root@server4 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local
将这两个包直接解压到/usr/local目录。
2.做软链接
[root@server4 ~]# cd /usr/local/
[root@server4 local]# ln -s jdk1.7.0_79/ java
[root@server4 local]# ln -s apache-tomcat-7.0.37/ tomcat
将解压后的目录在/usr/local下做软链接,方便使用。
3.修改环境变量
[root@server4 local]# vim /etc/profile
[root@server4 local]# source /etc/profile
重新加载配置文件。
测试:
编写一个简单的java测试文件
在这里插入代码片
public class test {
public static void main(String[] args)
{
System.out.println("hello world");
}
}
这个函数可以输出helloworld
java可以正常使用。
4.打开tomcat
[root@server4 bin]# /usr/local/tomcat/bin/startup.sh
使用绝对路径的方式打开。
tomcat使用的是8080端口,输入ip+端口就可以查看初始欢迎页面。
tomcat的默认发布目录是/usr/local/tomcat/webapps/ROOT。
tomcat实现负载均衡
要实现负载均衡就需要再用一台虚拟机,这里我使用的新虚拟机ip为172.25.62.1,虚拟机名为server1
在这台虚拟机上的操作和上一台虚拟机类似,需要获取jdk和tomcat的资源包并解压到/usr/local目录下。
[root@server1 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local
[root@server1 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local
解压。
[root@server1 local]# ln -s jdk1.7.0_79/ java
[root@server1 local]# ln -s apache-tomcat-7.0.37/ tomcat
之后做软链接。
[root@server1 local]# vim /etc/profile
修改环境变量。
[root@server1 local]# vim /etc/profile
使修改生效。
这样,这台新虚拟机的配置就基本完成了,接下来就要给两台虚拟机编写测试页了。
[root@server4 bin]# vim /usr/local/tomcat/webapps/ROOT/test.jsp
编写完测试页之后,在安装tomcat的虚拟机上修改配置文件,使tomcat实现轮循。
[root@server4 bin]# vim /usr/local/lnmp/nginx/conf/nginx.conf
20 upstream tomcat {
21 server 172.25.62.4:8080;
22 server 172.25.62.1:8080;
23 }
47 location / {
48 root /usr/local/tomcat/webapps/ROOT;
49 index index.html index.htm;
50 }
63 location ~ \.jsp$ {
64 proxy_pass http://tomcat;
65 }
65 # location ~ \.php$ {
66 # root html;
67 # fastcgi_pass 127.0.0.1:9000;
68 # fastcgi_index index.php;
69 # #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
70 # include fastcgi.conf;
71 # }
[root@server4 conf]# nginx -s reload
之后重启服务,在浏览器测试是否实现了轮循,这里要注意,tomcat必须是打开的。
通过刷新页面,查看是否实现轮循。
tomcat实现session黏性的测试
1.编写测试页
[root@server4 ROOT]# vim /usr/local/tomcat/webapps/ROOT/test.jsp
<%@ 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>
2.在浏览器访问
访问后会出现这样的页面,在name和key中输入内容,会保存到上方。
但每次更新都会清除前面内容。
3.关闭nginx并且重新编译安装
[root@server4 ROOT]# nginx -s stop
关闭nginx,之后还要把之前编译的nginx目录删除,之后再重新安装,因为这里需要用到一个模块来实现session黏性。
首先要注释debug日志级别,尽量节省空间。
[root@server4 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --add-module=/root/nginx-sticky-module-ng
添加http_ssl_module模块。
[root@server4 nginx-1.10.1]# make && make install
编译安装,这样sticky模块就可以正常使用了。需要注意的是,需要获取nginx-sticky-module这个模块的包,并且放再自己指定的目录下,添加模块才会成功。