轻量级web服务器nginx学习(6)———nginx实现负载均衡(与tomcat服务器应用)

1.环境配置

1.1什么是Tomcat?

  • Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成
  • Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
  • 对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
  • 当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

1.2 配置实验环境

(1)解压jdk及tomcat安装包

tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/  ##解压jdk和tomcat的安装包
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
cd /usr/local             ##做好软连接便于访问 
ln -s jdk1.7.0_79/ java
ln -s apache-tomcat-7.0.37/ tomcat

在这里插入图片描述

(2)Tomcat所需java环境的配置
由于tomcat是基于java环境变量jdk下运行的web服务器,所以需要配置jdk环境

vim /etc/profile
export JAVA_HOME=/usr/local/java  ##JAVA_HOME路径以先前解压安装包路径为主
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

source /etc/profile   ##让文件生效

在这里插入图片描述

测试:

[root@server1 local]#  echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/php/bin:/usr/local/java/bin
[root@server1 local]#  echo $CLASSPATH
.:/usr/local/java/lib:/usr/local/java/jre/lib
[root@server1 local]#  echo $JAVA_HOME
/usr/local/java
[root@server1 local]# which java
/usr/local/java/bin/java
[root@server1 local]# which javac
/usr/local/java/bin/javac

vim test.java
public class test
{
    public static void main(String[] args)
    {
        System.out.println("Hello World1");
    }
}


javac test.java  ##java编译
java test ##执行文件

在这里插入图片描述
(3)启动 tomcat以及nginx

nginx ##nginx的启动(nginx的编译安装见之前博客)
##nginx在路径/usr/local/nginx下

cd /usr/local/tomcat  ##tomcat的启动
bin/startup.sh
netstat -antulp ##查看8080端口是否开启(tomcat是否启动)

2.tomcat静动态页面的访问

实验一:访问tomcat的静态页面
(1)配置:

cd /uar/local/tomcat/webapps/ROOT
vim test.jsp ##tomcat的发布默认目录是tomcat/webapps/ROOT  发布文件以.jsp结尾

server1-The time is: <%=new java.util.Date() %>
wq ##退出保存

cd  /usr/local/tomcat/
bin/shutdowm.sh     ##重启tomcat
bin/startup.sh 

(2)测试:
在浏览器中http://172.25.254.111:8080可以看到tomcat默认发布页面
在这里插入图片描述
访问http://172.25.254.11:8080/test.jsp 可以看到编辑内容:
在这里插入图片描述
实验二:访问tomcat动态交互数据页面(增加测试界面)
(1)配置:

vim 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>

(2)测试:
访问:刷新之前页面
在这里插入图片描述

3.nginx对tomcat实现负载均衡

nginx做负载均衡器,需要两台tomcat服务器,其中一台服务器可与nginx负载均衡器共同配置;也就是说只需要两台实验虚拟机,一台做tomcat服务器;另一台既做tomcat服务器又做nginx负载均衡器

  • 对两台tomcat服务器配置
编写发布页面(两台服务器都做,为了看到效果,两个界面编写内容不同):
cd /usr/local/tomcat/webapps/ROOT/
vim test.jsp
##服务器1:
server1-The time is: <%=new java.util.Date() %>
##服务器2:
server2-The time is: <%=new java.util.Date() %>

在浏览器中分别访问可以看到:
server1:
在这里插入图片描述
server2:
在这里插入图片描述

  • 对nginx负载均衡器配置
vim   /usr/local/nginx/conf/nginx.conf ##配置配置文件
upstream tomcat {    ##upstream负载均衡模块
        server 172.25.254.111:8080;   ##服务器1(不仅可以实现主机负载均衡还可以实现端口的负载均衡)
        server 172.25.254.112:8080;   ##服务器2

}



 location / {
            root   /usr/local/tomcat/webapps/ROOT;  ##tomcat默认发布目录
            index  index.html index.htm;
}
       location ~ \.jsp$ {             ##调用负载均衡模块
           proxy_pass   http://tomcat;
       }

nginx -t  ##检测配置文件语法
nginx 重启nginx

netstat  -antulp 查看80端口是否开启

在这里插入图片描述
在这里插入图片描述

  • 测试:
    当nginx启动后,在浏览器总输入负载均衡器所在虚拟机ip(172.25.254.111是我的负载均衡器) http://172.25.254.111/test.jsp 不断刷新网页,观察现象:111服务器与112服务器轮询负载,ID号在不停的发生变化
    在这里插入图片描述
    在这里插入图片描述
    需要注意的是:
    在浏览器中访问http://172.25.254.111 访问的是nginx本身的默认发布界面(nginx的默认服务端口为80);http://172.25.254.111:8080 访问的是tomcat(tomcat服务端口为8080) ;http://172.25.254.111/test.jsp 访问的才是nginx负载均衡器负载配置的目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值