目录
(2)在webapp1目录下建立一个index.jsp 的测试页面
一、案例环境
机 |
IP |
操作系统 |
应用 |
Nginx服务器(101) |
192.168.10.101 |
OpenEuler24 |
nginx-1.26.3 |
Tomcat1服务器(102) |
192.168.10.102 |
OpenEuler24 |
apache-tomcat-9.0.8 |
Tomcat2服务器(103) |
192.168.10.103 |
OpenEuler24 |
apache-tomcat-9.0.8 |
二、部署 Tomcat(102/103)
1、准备环境
(1)关闭firewalld 防火墙
systemctl stop firewalld
setenforce 0
(2)安装JDK
dnf -y install java
2、安装配置 Tomcat
(1)Tomcat 的安装和配置
解压本文使用的安装包
tar zxvf apache-tomcat-9.0.8.tar.gz
(2)移动并改名
mv apache-tomcat-9.0.8 /usr/local/tomcat
(3)启动并查看监听
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
Tomcat 默认运行在8080 端口,运行netstat 命令查看8080 端口监听的信息。
[root@localhost bin]# netstat -anpt | grep java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1955/java
tcp6 0 0 :::8009 :::* LISTEN 1955/java
tcp6 0 0 :::8080 :::* LISTEN 1955/java
(4)打开浏览器测试
在浏览器访问http://192.168.10.102:8080和http://192.168.10.103:8080即可查看Tomcat的默认界面。
3、建立Java的Web站点
(1)建立目录
mkdir -p /web/webapp1
(2)在webapp1目录下建立一个index.jsp 的测试页面
102
vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test1 page</title> </head>
<body>
<% out.println("动态页面 1,http://www.test1.com");%>
</body>
<body>
<div>动态页面的图片 1</div><br><img src="logo.png">
</body>
</html>
103
vim /web/webapp1/index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>JSP test2 page</title> </head>
<body>
<% out.println("动态页面 2,http://www.test2.com");%>
</body>
<body>
<div>动态页面的图片 2</div><br><img src="logo.png">
</body>
</html>
(3)修改Tomcat 的server.xml 文件
定义一个虚拟主机,并将网站文件路径指向已经建立的/web/webapp1,在 host 段增加context 段。
vim /usr/local/tomcat/conf/server.xml
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Context docBase="/web/webapp1" path="" /> #150,添加
(4)关闭Tomcat,再重新启动
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
(5)确认Web 站点
然后将准备好的logo.png图片放到/web/webapp1/目录下,访问192.168.10.102:8080和192.168.10.103:8080
4、Tomcat 配置相关说明
Tomcat 的主目录为/usr/local/tomcat/
(1)主要目录说明
- bin/:存放 Windows 或 Linux 平台上启动和关闭 Tomcat 的脚本文件。
- conf/:存放 Tomcat 服务器的各种全局配置文件,其中最重要的是 server.xml 和web.xml。
- lib/:存放 Tomcat 运行需要的库文件(JARS)。
- logs:存放 Tomcat 执行时的 LOG 文件。
- webapps:Tomcat 的主要 Web 发布目录(包括应用程序示例)。
- work:存放 JSP 编译后产生的 class 文件。
(2)配置文件说明
- catalina.policy:权限控制配置文件。
- catalina.properties:Tomcat 属性配置文件。
- context.xml:上下文配置文件。
- logging.properties:日志 log 相关配置文件。
- server.xml:主配置文件。
- tomcat-users.xml:manager-gui管理用户配置文件(Tomcat安装后提供一个manager-gui 的管理界面,通过配置该文件可以开启访问)
- web.xml:Tomcat 的 servlet、servlet-mapping、filter、MIME 等相关配置。
三、配置Nginx,实现负载均衡、动静分离群集(101)
通常情况下,一台 Tomcat 站点由于可能出现单点故障及无法应付过多客户复杂多样的 请求等问题,不能单独应用于生产环境下,所以需要一套更可靠的解决方案来完善 Web 站点 架构。
Nginx 是一款非常优秀的 http 服务器软件,它能够支持高达 50000 个并发连接数的响应,拥有强大的静态资源处理能力,运行稳定,并且内存、CPU 等系统资源消耗非常低。 目 前很多大型网站都应用 Nginx 服务器作为后端网站程序的反向代理及负载均衡器,来提升整个站点的负载并发能力。
Nginx 是一个非常强大的静态 web 服务,Tomcat 处理动态请求效率不高,而一般网站大 多数的内容都是静态文件(如图片、html、css、js 等),经过 Nginx 前端的反向代理加速 和过滤,后端Tomcat 处理请求的压力便可大大减少,只需负责处理动态内容就可以了。在 性能与稳定性的权衡下,使用 Nginx+Tomcat 搭配便可让它们在各自擅长的领域大展拳脚。
1、Nginx 服务器配置
在 Nginx 服务器 192.168.10.101 上安装 Nginx,反向代理到两个 Tomcat 站点,并实现负载均衡。
(1)关闭防火墙
systemctl stop firewalld
setenforce 0
(2)安装相关软件包
dnf -y install gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker
(3)解压并安装Nginx
useradd -M -s /sbin/nologin nginx
tar zxf nginx-1.26.3.tar.gz
cd nginx-1.26.3
./configuer --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-pcre
(4)配置nginx.conf
在 http{…}中加入以下代码,设定负载均衡的服务器列表,weight 参数表示权重,权重越高,被分配到的概率越大。
vim /usr/local/nginx/conf/nginx.conf
#gzip on;
upstream my_tomcat {
server 192.168.10.102:8080 weight=1;
server 192.168.10.103:8080 weight=2;
}
把 Nginx 的默认站点通过 proxy_pass 方法代理到了设定好的 tomcat_server 负载均衡服务器组上。配置完整的 nginx.conf 文件内容如下。
vim /usr/local/nginx/conf/nginx.conf
http {
......
#gzip on;
upstream my_tomcat {
server 192.168.10.102:8080 weight=1;
server 192.168.10.103:8080 weight=2;
}
server {
listen 80;
server_name localhost;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root html;
index index.html index.htm;
}
location ~ .*\.jsp$ {
proxy_set_header HOST $host;
proxy_set_header Client-IP $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_pass http://my_tomcat;
}
location ~ .*\.(png|gif|jpeg|jpg)$ {
root /usr/local/nginx/html/img;
expires 30d;
}
......
}
......
}
下面再 Nginx 上准备静态图片
mkdir /usr/local/nginx/html/img
将图片放到img/目录下
cp /root/logo.jpg /usr/local/nginx/html/img/
测试Nginx 配置文件是否正确
[root@bogon html]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
启动Nginx 服务
systemctl start nginx
Nginx查看端口号及PID进程号
[root@bogon ~]# netstat -anpt | grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1907/nginx: master
2、测试效果
多次访问192.168.10.101/index.jsp,会发现下图会以1:2的比例轮流出现,就说明负载均衡群集搭建成功,已经可以再两个Tomcat server站点进行切换。
查看日志