环境规划
节点信息
主机 | IP 地址 | 角色 |
Server 1 | 172.18.8.98 | Confluence 节点 1 |
Server 2 | 172.18.8.99 | Confluence 节点 2 |
Server 3 | 172.18.8.97 | Nginx(负载均衡)、MySQL、NFS 服务 |
系统是ubuntu 22.04
大数据老confluence服务器配置:
4c16g 硬盘200g(使用不到30g)
新confluence集群配置:
节点配置:4c16g 50g的磁盘
数据库、负载均衡、nfs服务器配置:4c16g,300gb的磁盘
新装系统设置
更新系统
sudo apt update && sudo apt upgrade -y
安装常用工具
sudo apt install -y build-essential curl wget vim git unzip net-tools htop software-properties-common
设置正确的时区
sudo timedatectl set-timezone Asia/Shanghai
关闭防火墙
sudo ufw disable
sudo systemctl disable ufw
取消文件打开限制
#加到最后
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
挂载数据盘
#挂载另一个另一块磁盘到/data并查看是否挂载成功
lsblk
sudo mkfs.xfs /dev/sdb
sudo mkdir -p /data
sudo mount /dev/sdb /data
df -h
#获取UUID
sudo blkid /dev/sdb
#编辑/etc/fstab并添加uuid
sudo nano /etc/fstab
UUID=xxxx-xxxx /data xfs defaults 0 0
#测试挂载
sudo mount -a
#重启后可以再用df -h确认挂载情况
详细部署步骤
一、JDK 17 安装
在所有节点(172.18.8.97、172.18.8.98、172.18.8.99)上安装 JDK 17:
- 下载 JDK 17:
sudo apt update
sudo apt install -y wget
wget https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.deb
- 安装 JDK 17:
sudo dpkg -i jdk-17.0.12_linux-x64_bin.deb
- 设置默认 Java 版本,有提示错误不用管,再敲一遍:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk-17.0.12-oracle-x64/bin/java 1
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk-17.0.12-oracle-x64/bin/javac 1
sudo update-alternatives --set java /usr/lib/jvm/jdk-17.0.12-oracle-x64/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/jdk-17.0.12-oracle-x64/bin/javac
- 验证安装:
sudo update-alternatives --display java
sudo update-alternatives --display javac
java -version
二、安装和配置 MySQL,安装到/data/目录下面
在 Server 3
(172.18.8.97
)上安装并配置 MySQL。
1. 安装 MySQL,版本用的是mysql 8.0:
sudo apt install -y mysql-server
2. 创建 /data/mysql
数据目录:
sudo mkdir -p /data/mysql
sudo chown mysql:mysql /data/mysql
sudo chmod 750 /data/mysql
3. 修改 MySQL 配置文件 /etc/mysql/mysql.conf.d/mysqld.cnf
:
[mysqld]
# 基本设置
user = mysql
pid-file = /data/mysql/mysqld.pid
socket = /data/mysql/mysql.sock
port = 3306
basedir = /usr
datadir = /data/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
transaction-isolation = READ-COMMITTED
log_bin_trust_function_creators = 1
skip-external-locking
# 绑定地址(允许远程访问)
bind-address = 0.0.0.0
# 最大连接数
max_connections = 300
# 字符集设置
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect = 'SET NAMES utf8mb4'
# InnoDB 引擎优化
innodb_buffer_pool_size = 8G
innodb_log_file_size = 512M
innodb_log_buffer_size = 64M
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_flush_method = O_DIRECT
innodb_lock_wait_timeout = 60
# 缓存设置
tmp_table_size = 128M
max_heap_table_size = 128M
table_open_cache = 4000
table_definition_cache = 2000
# 日志设置
log_error = /data/mysql/error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/mysql-slow.log
long_query_time = 2
log_queries_not_using_indexes = 1
# 网络设置
max_allowed_packet = 256M
interactive_timeout = 600
wait_timeout = 600
net_read_timeout = 60
net_write_timeout = 60
# 禁用 DNS 名称解析
skip-name-resolve
# 权限管理
default_authentication_plugin = mysql_native_password
# 性能模式
performance_schema = ON
# 表存储引擎
default_storage_engine = InnoDB
# Binlog 设置
binlog_format = ROW
expire_logs_days = 10
max_binlog_size = 512M
[client]
port = 3306 socket = /data/mysql/mysql.sock default-character-set = utf8mb4
[mysqldump]
quick quote-names max_allowed_packet = 256M
[mysql]
no-auto-rehash default-character-set = utf8mb4
[isamchk]
key_buffer = 16M
[myisamchk]
key_buffer = 16M !includedir /etc/mysql/conf.d/
4. 编辑 AppArmor 配置文件
sudo nano /etc/apparmor.d/usr.sbin.mysqld
# 在类似注释下面加Allow MySQL to access its data directory
# 可以加在这两条下面
#/var/lib/mysql/ r,
#/var/lib/mysql/** rwk,
/data/mysql/ r,
/data/mysql/** rwk,
sudo systemctl restart apparmor
5. 初始化 /data/mysql
数据目录::
sudo mysqld --initialize --user=mysql --datadir=/data/mysql
6. 配置数据库:
- 登录 MySQL,并求改初始密码,检查数据目录:
# 通过日志查询初始密码
sudo cat /data/mysql/error.log
sudo mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
SHOW VARIABLES LIKE 'datadir';
- 创建数据库和用户:
CREATE DATABASE confluence CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'confluenceuser'@'%' IDENTIFIED WITH mysql_native_password BY 'securepassword';
GRANT ALL PRIVILEGES ON confluence.* TO 'confluenceuser'@'%';
FLUSH PRIVILEGES;
重启 MySQL:
sudo systemctl restart mysql
sudo systemctl status mysql
三、配置 NFS
在 Server 3
(172.18.8.97
)上设置 NFS 服务,提供共享存储。
- 安装 NFS:
sudo apt install -y nfs-kernel-server
- 创建共享目录:
sudo mkdir -p /data/nfs/confluence-shared
sudo chmod 777 /data/nfs/confluence-shared
- 配置 NFS 导出规则: 在
/etc/exports
中添加:
/data/nfs/confluence-shared 172.18.8.0/24(rw,sync,no_root_squash,no_subtree_check)
- 启动 NFS 服务:
sudo exportfs -ra
sudo systemctl restart nfs-kernel-server
- 在
Server 1
和Server 2
挂载 NFS:
sudo apt install -y nfs-common
sudo mkdir -p /mnt/confluence-shared
sudo mount -t nfs 172.18.8.97:/data/nfs/confluence-shared /mnt/confluence-shared
sudo showmount -e 172.18.8.97
- 配置开机挂载: 在
/etc/fstab
添加:
172.18.8.97:/data/nfs/confluence-shared /mnt/confluence-shared nfs defaults 0 0
- 新建一个测试文件,看看两台机器是否都可以访问:
touch /mnt/confluence-shared/testfile
四、安装 Confluence
1. 每个节点将本地家目录放在节点的本地磁盘上:
1.1. 在每个节点创建本地家目录和安装目录:
sudo mkdir -p /data/var/atlassian/application-data/confluence
sudo mkdir -p /data/opt/atlassian/confluence/
sudo chmod -R u=rwx,g=rx,o=rx /data/var/atlassian/application-data/confluence
sudo chmod -R u=rwx,g=rx,o=rx /data/opt/atlassian/confluence/
2. 在节点一上安装 Confluence 8.5.11。
2.1. 下载并运行安装程序:
wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.5.11-x64.bin
chmod +x atlassian-confluence-8.5.11-x64.bin
sudo ./atlassian-confluence-8.5.11-x64.bin
2.2. 安装全部直接用默认回车就行:
- 安装路径:
/data/opt/atlassian/confluence
。 - 家目录:选择默认即可
/data/var/atlassian/application-data/confluence
。 - 启动服务:yes。
2.3. 修改节点一的集群配置:
编辑 /data/var/atlassian/application-data/confluence/confluence.cfg.xml
文件,添加以下内容(这一步不一定必要,后面在网页端配置完必要的设置也会都设置上):
<property name="confluence.cluster.enabled">true</property>
<property name="confluence.cluster.name">confluence-cluster</property>
<property name="confluence.cluster.join.type">tcp</property>
<property name="confluence.cluster.join.address">127.0.0.1</property>
2.4. 配置节点一的 JVM 参数:
修改 /data/opt/atlassian/confluence/bin/setenv.sh
文件(新版本可能这一步可以不加了):
CATALINA_OPTS="-Datlassian.cluster.enabled=true \
-Datlassian.cluster.node.name=node1 \
-Datlassian.cluster.join.type=tcp \
-Datlassian.cluster.join.address=127.0.0.1 $CATALINA_OPTS"
加到这后面
2.5. 安装mysql驱动
拷贝驱动文件到confluence程序目录:/data/opt/atlassian/confluence/confluence/WEB-INF/lib/mysql-connector-j-8.4.0.jar,重启节点一,重启完可能要等5分钟才能访问。
2.6. 访问节点一
http://172.18.8.98:8900
。可以切换中文
2.7. 按向导完成:
- 输入 Data Center 许可证,没有的话一开始选试用。
点击获取试用授权
直接点生成license就行,server ID记录一下
点确定
点仍然发送
记录许可证,然后点下一步
点集群
集群名称随便写,配置共享存储路径:/mnt/confluence-shared
。
链接配置使用TCP/IP,把两个节点都加上:172.18.8.98,172.18.8.99
配置数据库连接,选mysql:
- 地址:
172.18.8.97:3306
- 数据库:
confluence
- 用户名:
confluenceuser
- 密码:
securepassword
点下一步,这边要等5分钟,然后跳出如下界面:
2.8. 配置用户和组
2.9. 节点一安装完成,验证集群状态:
- 登录 Confluence 管理界面,检查集群节点状态。
2.10. 关闭节点一上的confluence,在节点一运行这个脚本
/opt/atlassian/confluence/bin/stop-confluence.sh
3. 配置节点二
3.1. 下载并运行安装程序(不装一下会存在跨域问题,导致附件插入时有延迟):
wget https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.5.11-x64.bin
#之前下过直接用rz命令拷进去就行
chmod +x atlassian-confluence-8.5.11-x64.bin
sudo ./atlassian-confluence-8.5.11-x64.bin
3.2. 安装全部直接用默认回车就行:
- 安装路径:
/data/opt/atlassian/confluence
。 - 家目录:
/data/var/atlassian/application-data/confluence
。 - 启动服务:否。
3.3. 把安装的家目录和安装目录删除:
rm -rf /data/opt/atlassian/confluence/
rm -rf /data/var/atlassian/application-data/confluence/
3.4. 把节点一上的安装目录和home目录复制到节点二上。后面的操作都在节点二上。
scp -rp /data/opt/atlassian/confluence root@172.18.8.99:/data/opt/atlassian/
scp -rp /data/var/atlassian/application-data/confluence root@172.18.8.99:/data/var/atlassian/application-data/
3.5. 在节点二新建一个conluence用户
sudo /usr/sbin/useradd --create-home --comment "Account for running Confluence" --shell /bin/bash confluence
3.6. 设置相关文件的权限
sudo chmod -R u=rwx,g=rx,o=rx /data/var/atlassian/application-data/confluence;
sudo chmod -R u=rwx,g=rx,o=rx /data/opt/atlassian/confluence/;
sudo chown -R confluence /data/var/atlassian/application-data/confluence/;
sudo chown -R confluence /data/opt/atlassian/confluence/logs;
sudo chown -R confluence /data/opt/atlassian/confluence/work;
sudo chown -R confluence /data/opt/atlassian/confluence/temp;
3.7. 修改配置文件
编辑 /data/var/atlassian/application-data/confluence/confluence.cfg.xml
文件,添加修改以下内容(黄色那句要改一下,其它默认应该不用改了):
<property name="confluence.cluster.enabled">true</property>
<property name="confluence.cluster.name">confluence-cluster</property>
<property name="confluence.cluster.join.type">tcp_ip</property>
<property name="confluence.cluster.join.address">172.18.8.98</property>
修改 /data/opt/atlassian/confluence/bin/setenv.sh
文件:
CATALINA_OPTS="-Datlassian.cluster.enabled=true \
-Datlassian.cluster.node.name=node2 \
-Datlassian.cluster.join.type=tcp \
-Datlassian.cluster.join.address=172.18.8.98 $CATALINA_OPTS"
五、配置 Nginx 负载均衡
在 Server 3
(172.18.8.97
)上配置 Nginx 作为负载均衡器。
- 安装 Nginx:
sudo apt install -y nginx
- 配置 Nginx: 编辑
/etc/nginx/sites-available/confluence
:
upstream confluence_cluster {
ip_hash;
server 172.18.8.98:8090;
server 172.18.8.99:8090;
}
server {
listen 80;
server_name wiki.amassfreight.com;
client_max_body_size 100M;
location / {
proxy_pass http://confluence_cluster;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# 确保 WebSocket 连接支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
- 启用配置并重启 Nginx:
#在 /etc/nginx/sites-enabled/ 中查找是否存在 default 配置:
ls -l /etc/nginx/sites-enabled/
#如果存在 default 文件或链接,可以禁用它:
sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/confluence /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
六、使用配置
1. 配置DNS
添加相关记录:wiki.amassfreight.com
2. 配置server.xml
在两个节点上都把这个文件修改一下,黄色部分是confluence安装目录
nano /data/opt/atlassian/confluence/conf/server.xml
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
maxThreads="48" maxPostSize="16777216" minSpareThreads="10"
enableLookups="false" acceptCount="10" URIEncoding="UTF-8"
protocol="org.apache.coyote.http11.Http11NioProtocol"
proxyName="wiki.amassfreight.com" proxyPort="80" scheme="http" secure="false"/>
3. 启动节点
启动节点一定要一个个启动,先启动节点一,访问都没问题了,再启动节点二。
/opt/atlassian/confluence/bin/start-confluence.sh
节点一开启后会先报一个错,先不管
这里点一般配置
4. 修改confluence URL
修改成http://wiki.amassfreight.com
七、后续维护
- 备份
- 数据库:
mysqldump -u confluenceuser -p confluence > /backup/confluence.sql
- 共享存储:
rsync -av /var/nfs/confluence /backup/
- 监控
- 查看日志:
tail -f /var/atlassian/application-data/confluence/logs/atlassian-confluence.log
- 扩展
- 新增节点:复制安装流程。