1. Resin概述与环境规划
Resin是一款高性能的Java应用服务器,由Caucho Technology开发。它以速度快、资源占用少、配置简单著称,广泛应用于企业级Java Web应用。Resin支持Servlet、JSP、WebSocket等标准,并提供商业版和企业版以满足不同需求。更多学习教程www.fgedu.net.cn
1.1 Resin版本说明
Resin目前主要版本为Resin 4.0,本教程以Resin 4.0.66为例进行详细讲解。
$ /opt/resin/bin/resin.sh version
Resin-4.0.66 (built Thu, 15 Mar 2024 10:00:00 PST)
Copyright(c) 1998-2024 Caucho Technology. All rights reserved.
# 查看Resin状态
$ /opt/resin/bin/resin.sh status
Resin/4.0.66 status for watchdog at 127.0.0.1:6600
server ‘app-0’ : active
watchdog : 127.0.0.1:6600
state : active
ports : http*:8080
uptime : 0:10:00
1.2 环境规划
本次安装环境规划如下:
IP地址:192.168.1.51
Resin HTTP端口:8080
Resin HTTPS端口:8443
Watchdog端口:6600
Cluster端口:6800
安装目录:/opt/resin
数据目录:/data/resin
日志目录:/var/log/resin
备份目录:/backup/resin
Java环境:
JDK版本:OpenJDK 17
JAVA_HOME:/usr/lib/jvm/java-17
JVM堆大小:2GB
1.3 Resin核心特性
1. 高性能:采用C语言编写的核心,执行效率高
2. 轻量级:内存占用小,启动速度快
3. 集群支持:内置集群和负载均衡功能
4. 热部署:支持应用热部署和热更新
5. 健康检查:内置健康检查和自动恢复
6. 监控功能:提供Web管理界面和JMX支持
7. 多协议支持:支持HTTP/2、WebSocket等
8. 开源免费:GPL开源协议
2. 硬件环境要求与检查
在安装Resin之前,需要对服务器硬件环境进行全面检查。学习交流加群风哥微信: itpux-com
2.1 最低硬件要求
CPU:2核心
内存:2GB
磁盘:10GB
推荐配置(生产环境):
CPU:4核心以上
内存:4GB以上
磁盘:50GB以上
大型应用配置:
CPU:8核心以上
内存:8GB以上
磁盘:100GB以上SSD
2.2 Java环境检查
$ java -version
openjdk version “17.0.9” 9.0.4
OpenJDK Runtime Environment (Temurin-17.0.9+9) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode, sharing)
# 检查JAVA_HOME
$ echo $JAVA_HOME
/usr/lib/jvm/java-17
# 查看Java安装路径
$ which java
/usr/bin/java
2.3 系统环境检查
# cat /etc/redhat-release
Red Hat Enterprise Linux release 8.8 (Ootpa)
# 检查内存信息
# free -h
total used free shared buff/cache available
Mem: 15Gi 1.0Gi 13Gi 256Mi 1.0Gi 14Gi
Swap: 7Gi 0B 7Gi
# 检查磁盘空间
# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg_system-lv_root 100G 5.0G 95G 5% /
/dev/mapper/vg_data-lv_data 500G 50G 450G 10% /data
3. Resin安装步骤
本节详细介绍Resin 4.0的安装过程。学习交流加群风哥QQ113257174
3.1 安装OpenJDK
# dnf install -y java-17-openjdk java-17-openjdk-devel
# 验证安装
$ java -version
openjdk version “17.0.9” 9.0.4
OpenJDK Runtime Environment (Temurin-17.0.9+9) (build 17.0.9+9)
OpenJDK 64-Bit Server VM (build 17.0.9+9, mixed mode, sharing)
# 设置JAVA_HOME
# vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
# 使配置生效
# source /etc/profile.d/java.sh
$ echo $JAVA_HOME
/usr/lib/jvm/java-17-openjdk
3.2 创建用户和目录
# groupadd -g 1004 resin
# useradd -u 1004 -g resin -d /opt/resin -s /bin/bash resin
# passwd resin
# 创建目录
# mkdir -p /opt/resin
# mkdir -p /data/resin/{webapps,logs,conf}
# mkdir -p /var/log/resin
# mkdir -p /backup/resin
# 设置目录权限
# chown -R resin:resin /opt/resin
# chown -R resin:resin /data/resin
# chown -R resin:resin /var/log/resin
# chown -R resin:resin /backup/resin
3.3 下载并安装Resin
# cd /usr/local/src
# 下载Resin 4.0.66
# wget http://www.caucho.com/download/resin-4.0.66.tar.gz
# 解压安装
# tar -xzf resin-4.0.66.tar.gz -C /opt/
# 创建软链接
# ln -s /opt/resin-4.0.66 /opt/resin
# 设置目录权限
# chown -R resin:resin /opt/resin-4.0.66
# chown -R resin:resin /opt/resin
# 验证安装
$ ls -la /opt/resin/
总用量 0
drwxr-xr-x. 3 resin resin 4096 4月 4 10:00 bin
drwxr-xr-x. 2 resin resin 4096 4月 4 10:00 conf
drwxr-xr-x. 2 resin resin 4096 4月 4 10:00 lib
drwxr-xr-x. 2 resin resin 4096 4月 4 10:00 webapps
3.4 配置Resin环境
$ vi ~/.bash_profile
# 添加以下内容
export RESIN_HOME=/opt/resin
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$RESIN_HOME/bin:$JAVA_HOME/bin:$PATH
# 使配置生效
$ source ~/.bash_profile
# 验证环境变量
$ echo $RESIN_HOME
/opt/resin
# 查看resin.sh命令
$ which resin.sh
/opt/resin/bin/resin.sh
# 查看resin.sh帮助
$ resin.sh –help
3.5 配置Resin
$ vi /opt/resin/conf/resin.xml
# 配置服务器
# 配置resin.properties
$ vi /opt/resin/conf/resin.properties
# 设置管理密码
admin_user : admin
admin_password : {SSHA}xxxxxxxxxxxxxxxx
# 设置日志路径
log_directory : /var/log/resin
3.6 启动Resin
$ resin.sh start
# 输出示例:
Resin/4.0.66 launching watchdog at 127.0.0.1:6600
Resin/4.0.66 started -server ‘app-0’ for watchdog at 127.0.0.1:6600
# 查看状态
$ resin.sh status
# 输出示例:
Resin/4.0.66 status for watchdog at 127.0.0.1:6600
server ‘app-0’ : active
watchdog : 127.0.0.1:6600
state : active
ports : http*:8080
uptime : 0:05:00
# 检查端口
$ netstat -tlnp | grep resin
tcp6 0 0 :::8080 :::* LISTEN 12345/java
tcp6 0 0 :::6600 :::* LISTEN 12346/resin
tcp6 0 0 :::6800 :::* LISTEN 12345/java
# 配置防火墙
# firewall-cmd –permanent –add-port=8080/tcp
success
# firewall-cmd –permanent –add-port=8443/tcp
success
# firewall-cmd –permanent –add-port=6600/tcp
success
# firewall-cmd –reload
success
# 访问Resin
# 浏览器访问: http://192.168.1.51:8080
4. Resin参数配置
Resin参数配置是性能优化的关键步骤,直接影响系统性能。更多学习教程公众号风哥教程itpux_com
4.1 JVM参数配置
$ vi /opt/resin/conf/resin.xml
# 重启Resin使配置生效
$ resin.sh restart
4.2 线程池配置
$ vi /opt/resin/conf/resin.xml
# 配置连接池
# 重启Resin
$ resin.sh restart
4.3 数据源配置
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
5. 应用部署
Resin支持多种应用部署方式,本节介绍常用的部署方法。from:www.itpux.com
5.1 部署WAR应用
$ cp /tmp/fgedu-web.war /data/resin/webapps/
# Resin会自动部署
$ ls -la /data/resin/webapps/
fgedu-web.war
fgedu-web/
# 方式二:配置resin.xml部署
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
# 查看部署状态
$ resin.sh status
# 输出示例:
Resin/4.0.66 status for watchdog at 127.0.0.1:6600
server ‘app-0’ : active
web-apps : /fgedu
state : active
5.2 配置虚拟主机
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
5.3 取消部署
$ rm /data/resin/webapps/fgedu-web.war
$ rm -rf /data/resin/webapps/fgedu-web
# 或者从resin.xml中移除配置
$ vi /opt/resin/conf/resin.xml
# 注释掉或删除web-app配置
# 重启Resin
$ resin.sh restart
6. 集群配置
Resin支持集群部署,提供高可用性和负载均衡能力。更多学习教程www.fgedu.net.cn
6.1 配置集群
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
6.2 启动集群节点
$ resin.sh start –server app-0
# 在第二台服务器启动
$ resin.sh start –server app-1
# 在负载均衡器启动
$ resin.sh start –server web-0
# 查看集群状态
$ resin.sh status
# 输出示例:
Resin/4.0.66 status for watchdog at 127.0.0.1:6600
server ‘app-0’ : active
state : active
ports : http*:8080
server ‘app-1’ : active
state : active
ports : http*:8080
7. 安全配置
Resin提供了完善的安全框架,本节介绍常用的安全配置方法。学习交流加群风哥微信: itpux-com
7.1 配置SSL/TLS
$ keytool -genkeypair -alias resin -keyalg RSA -keysize 2048 -keystore /opt/resin/conf/resin.keystore -validity 365 -storepass changeit -keypass changeit -dname “CN=fgedudb01.fgedu.net.cn,OU=IT,O=FGedu,L=BJ,ST=BJ,C=CN”
# 编辑resin.xml配置HTTPS
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
# 测试HTTPS访问
$ curl -k https://192.168.1.51:8443
7.2 配置访问控制
$ vi /opt/resin/conf/resin.xml
# 配置用户
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
8. 监控与日志
Resin提供了完善的监控和日志功能,本节介绍常用的监控配置方法。更多学习教程公众号风哥教程itpux_com
8.1 日志配置
$ vi /opt/resin/conf/resin.xml
# 查看日志
$ tail -f /var/log/resin/resin.log
# 输出示例:
[2026-04-04 10:00:00.123] [resin] info: Resin/4.0.66 started
[2026-04-04 10:00:00.456] [resin] info: Server ‘app-0’ started
8.2 启用JMX监控
$ vi /opt/resin/conf/resin.xml
# 重启Resin
$ resin.sh restart
# 使用JConsole连接
$ jconsole service:jmx:rmi:///jndi/rmi://192.168.1.51:9999/jmxrmi
8.3 健康检查
$ vi /opt/resin/conf/resin.xml
# 查看健康状态
$ resin.sh status
# 输出示例:
Resin/4.0.66 status for watchdog at 127.0.0.1:6600
server ‘app-0’ : active
health : healthy
state : active
9. 升级与迁移
Resin升级和迁移是运维工作中的重要环节,需要仔细规划和执行。from:www.itpux.com
9.1 版本升级
$ resin.sh version
Resin-4.0.66 (built Thu, 15 Mar 2024 10:00:00 PST)
# 完整备份当前Resin
$ tar -czf /backup/resin/resin_backup_$(date +%Y%m%d).tar.gz /opt/resin
# 备份配置文件
$ cp /opt/resin/conf/resin.xml /backup/resin/resin.xml.$(date +%Y%m%d)
# 停止Resin
$ resin.sh stop
# 下载新版本
# wget http://www.caucho.com/download/resin-4.0.67.tar.gz
# 解压新版本
# tar -xzf resin-4.0.67.tar.gz -C /opt/
# 迁移配置文件
# cp /opt/resin/conf/resin.xml /opt/resin-4.0.67/conf/
# cp /opt/resin/conf/resin.properties /opt/resin-4.0.67/conf/
# 更新软链接
# rm -f /opt/resin
# ln -s /opt/resin-4.0.67 /opt/resin
# 设置权限
# chown -R resin:resin /opt/resin-4.0.67
# chown -R resin:resin /opt/resin
# 启动Resin
$ resin.sh start
# 验证版本
$ resin.sh version
Resin-4.0.67 (built Thu, 01 Jun 2024 10:00:00 PST)
9.2 迁移到新服务器
$ tar -czf /backup/resin/resin_migrate_$(date +%Y%m%d).tar.gz /opt/resin /data/resin
# 传输备份文件
$ scp /backup/resin/resin_migrate_*.tar.gz new-server:/tmp/
# 在新服务器安装Resin
# 参见3.1-3.4节安装步骤
# 恢复配置
# tar -xzf /tmp/resin_migrate_*.tar.gz -C /
# 设置权限
# chown -R resin:resin /opt/resin
# chown -R resin:resin /data/resin
# 启动Resin
$ resin.sh start
# 验证迁移
$ resin.sh status
# 输出示例:
Resin/4.0.66 status for watchdog at 127.0.0.1:6600
server ‘app-0’ : active
state : active
10. 生产环境实战案例
本节提供一个完整的生产环境配置案例,帮助读者更好地理解Resin的实际应用。更多学习教程www.fgedu.net.cn
10.1 生产环境完整配置
# 1. 编辑resin.xml
$ vi /opt/resin/conf/resin.xml
# 2. 创建启动脚本
$ vi /opt/resin/bin/start-resin.sh
#!/bin/bash
RESIN_HOME=/opt/resin
export RESIN_HOME
$RESIN_HOME/bin/resin.sh start
# 3. 创建systemd服务
$ vi /etc/systemd/system/resin.service
[Unit]
Description=Resin Application Server
After=network.target
[Service]
Type=forking
User=resin
Group=resin
ExecStart=/opt/resin/bin/resin.sh start
ExecStop=/opt/resin/bin/resin.sh stop
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 启用服务
# systemctl enable resin
# systemctl start resin
10.2 性能监控配置
$ vi /opt/resin/conf/resin.xml
# 查看统计信息
$ curl http://192.168.1.51:8080/resin-admin/status
# 输出示例:
10.3 性能调优实战
$ vi /opt/resin/conf/resin.xml
# 连接池优化
# 缓存优化
# 重启Resin使配置生效
$ resin.sh restart
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
