1.Tomcat以及JDK下载
服务器版本为almalinux9.6
Tomcat安装之前要安装jdk且设置好环境变量,本次实验使用的JDK版本为21,Tomcat版本为10.1.43;下载地址分别是
Java Downloads | Oracle 中国https://www.oracle.com/cn/java/technologies/downloads/#java21Apache Tomcat® - Apache Tomcat 10 Software Downloads
https://tomcat.apache.org/download-10.cgi
2.JDK以及Tomcat安装
将下载好的JDK以及Tomcat上传到服务器
解压Tomcat以及JDK的压缩包,命令为:
#解压JDK
tar -zxvf jdk-21_linux-x64_bin.tar.gz
#解压Tomcat
tar -zxvf apache-tomcat-10.1.43.tar.gz
注意:
如果没有tar命令,请使用 dnf install -y tar 命令进行安装
如果JDK和Tomcat的版本不同,命令别照抄,文件名不同
解压好之后,我们需要设置JDK以及Tomcat的环境变量,修改/etc/profile文件,在文件末尾添加如下命令:
export JAVA_HOME=/root/jdk-21.0.8
export TOMCAT_HOME=/root/apache-tomcat-10.1.43/
export PATH=$PATH:$JAVA_HOME/bin:/$TOMCAT_HOME/bin
注意:JAVA_HOME以及TOMCAT_HOME环境变量指向的文件夹是上一步解压出来的文件夹,我是直接放在/root下来了,如果你解压路径不在/root请根据实际情况修改。修改好之后使用source /etc/profile让环境变量生效,同时通过java -version可以看到jdk版本
3.Tomcat配置
进入到Tomcat的bin目录输入 ./start.sh 命令就能启动Tomcat了,./start.sh代表启动当前目录下的start.sh脚本;Tomcat默认的端口是8080,我们可以通过访问服务器IP:8080的方式查看Tomcat是否在运行了
可以看到Tomcat启动成功了(这里172.16.201.142是我服务器的IP,到时候请根据自己的实际网络情况修改为自己服务器的IP)
修改Tomcat侦听端口,编辑Tomcat目录/conf/server.xml文件,将connector port="8080"修改为你要设置的端口,如下图我设置为了8088,然后保存
回到bin目录,用shutdown.sh关闭服务,用start.sh重新启动服务
可以看到侦听端口已经成功从8080修改为8088了
4.nginx安装部署
前面Tomcat用的是离线安装,nginx就用在线安装的方法
用dnf install 命令进行安装
dnf install nginx -y
依旧是启动nginx以及配置开机自启动
#启动nginx
systemctl start nginx
#配置nginx开机自启动
systemctl enable nginx
nginx服务器默认侦听80端口,所以我们直接输入服务器IP进行访问,可以看到nginx已经启动成功
5.Nginx反向代理以及负载均衡配置
nginx除了可以作为web服务器以外更多的是它的反向代理功能,本次来配置并测试Nginx的反向代理以及负载均衡功能。
Nginx 反向代理就是客户端和真实服务器之间的一个智能中介和调度中心,负责安全地转发请求、分发流量、优化性能,同时保护后端服务器的隐私和安全。
现在我有三台web服务器,我想让其他人都能通过同一个网址都能访问到,且我能对访问这三台web服务器的流量进行控制,比如性能好的服务器可以支持更多的并发,我让更多人的访问这台性能更好的服务器。从nginx角度来说,你就要先定义一个组,这个组包含这三台性能不同的web服务器,我根据web服务器的性能决定访问三台服务器的用户比例,这一步就是nginx的负载均衡;那有了组我得开放一个端口让用户进行访问,然后把访问这个端口的流量转发到前面定义好的组去,这就是nginx的反向代理。说的简单点,nginx开放端口,同时把访问这个端口的流量按照指定的规则转发给组内的服务器。
有了以上思路,来修改nginx的配置文件进行实现
下面的命令意思是我定义了一个test组,组内包含三台服务器对应172.16.201.142服务器的不同端口,权重都是1,然后访问nginx 80端口的流量会被代理到test组的服务器
更多的配置大家可以翻阅官网文档:
nginx documentationhttps://nginx.org/en/docs/
配置好后重启nginx服务
测试下效果,curl 172.16.201.142 | head -n 10 (只看输出结果的前10行)
可以看到访问被代理到了不同的服务(Tomcat,stirling-pdf,photopea)