1.在虚拟机安装tomcat并且部署一个服务,并且实现会话共享。
使用 Nginx 作为反向代理,结合Redisson模块来构建一个基于 Redis 会话复制的 Tomcat 集群,可以确保用户的会话信息在所有 Tomcat 实例之间共享,从而提高高可用性和负载均衡。以下是详细的步骤:
1、在ubuntu2(10.0.0.200)安装nginx,设置nginx反向代理
# 使用apt包管理器安装nginx
apt -y install nginx
# 编辑nginx的主配置文件
vim /etc/nginx/nginx.conf
# 在http块中,包含/etc/nginx/conf.d/目录下的所有.conf文件,以便管理多个站点配置
http{
...
include /etc/nginx/conf.d/*.conf;
}
# 创建并编辑特定站点的配置文件
vim /etc/nginx/conf.d/www.redision.org.conf
# 定义后端服务器组magedu,包含两个服务器实例
upstream magedu {
server 10.0.0.173:8080;
server 10.0.0.175:8080;
}
# 配置一个server块,用于处理对www.redision.org的请求
server {
listen 80; # 监听80端口(HTTP)
server_name www.redision.org; # 指定服务器名称
return 302 https://$server_name$request_uri;
listen 443 ssl; # 同时监听443端口(HTTPS)
# 指定SSL证书和密钥文件路径
ssl_certificate /etc/nginx/ssl/www.redision.org.pem;
ssl_certificate_key /etc/nginx/ssl/www.redision.org.key;
# 配置location块,用于处理所有请求
location / {
proxy_pass http://magedu; # 将请求转发到后端服务器组magedu
proxy_set_header Host $http_host; # 设置请求头,将原始请求的Host字段传递给后端服务器
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 设置请求头,将客户端IP地址传递给后端服务器
}
}
# 重新加载nginx配置,使更改生效
nginx -s reload
2、在ubuntu5(10.0.0.172)安装redis,用于redisson会话共享
# 使用apt包管理器安装redis
apt -y install redis # 安装redis文件
# 编辑redis配置文件
vim /etc/redis/redis.conf # 修改redis配置文件
# 将bind配置项修改为0.0.0.0,允许所有IP地址连接redis
bind 0.0.0.0
3、ubuntu3(10.0.0.173)和ubuntu4(10.0.0.175)依次安装jdk和tomcat
#安装openjdk11
#将下载的包上传到服务器上,把压缩包移动到要安装的jdk目录
mv openjdk-11.0.2_linux-x64_bin.tar.gz /usr/local/src/
#进入/usr/local/src目录,解压压缩包后删除压缩包
cd /usr/local/src/ && tar xf openjdk-11.0.2_linux-x64_bin.tar.gz && rm -rf openjdk-11.0.2_linux-x64_bin.tar.gz
#添加环境变量(使用追加方式添加)记得切换自己的安装路径!!
echo "export PATH=/usr/local/src/jdk-11.0.2/bin:$PATH" >> /etc/profile
#查看一下环境变量
tail -1 /etc/profile
#生效环境变量
source /etc/profile
#查看jdk版本,显示openjdk11.0.2,显示正确就说明安装成功了
java --version
# 编写tomcat安装脚本
#!/bin/bash
# 定义变量
TOMCAT_PACKAGE="apache-tomcat-9.0.98.tar.gz"
INSTALL_DIR="/usr/local/src"
SERVICE_NAME="tomcat"
# 检查并创建tomcat用户和组
if ! id tomcat &>/dev/null; then
groupadd tomcat
useradd -M -s /bin/nologin -g tomcat -d /usr/local/src/tomcat tomcat
fi
echo "正在解压Apache Tomcat..."
tar -zxf ~/$TOMCAT_PACKAGE -C $INSTALL_DIR
# 动态获取Tomcat目录名称
TOMCAT_VERSION=$(basename "$TOMCAT_PACKAGE" .tar.gz)
TOMCAT_INSTALL_DIR="$INSTALL_DIR/$TOMCAT_VERSION"
echo "正在配置Tomcat环境..."
ln -sf $TOMCAT_INSTALL_DIR $INSTALL_DIR/tomcat
echo "动态链接已创建"
# 更改所有者为tomcat用户和组
chown -R tomcat:tomcat $TOMCAT_INSTALL_DIR
chmod +x $INSTALL_DIR/tomcat/bin/*.sh
# 创建systemd服务文件
SERVICE_FILE="/etc/systemd/system/$SERVICE_NAME.service"
echo "[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/local/src/jdk-11.0.2
Environment=CATALINA_PID=$INSTALL_DIR/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=$INSTALL_DIR/tomcat
Environment=CATALINA_BASE=$INSTALL_DIR/tomcat
ExecStart=$INSTALL_DIR/tomcat/bin/startup.sh
ExecStop=$INSTALL_DIR/tomcat/bin/shutdown.sh
User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always
[Install]
WantedBy=multi-user.target" | tee $SERVICE_FILE
# 刷新systemd守护进程以识别新的服务文件
systemctl daemon-reload
# 设置Tomcat开机自启
systemctl enable $SERVICE_NAME
# 启动Tomcat服务
systemctl start $SERVICE_NAME
if systemctl is-active --quiet $SERVICE_NAME; then
echo &