在这篇文章中,我们将专注于如何提升私有部署用户的单机部署成功率。我们深知部署过程中可能遇到的挑战和困难,因此,我们将提供一些重要的部署注意事项,以帮助您避免常见的陷阱和错误。此外,我们还将提供一些参考文档,以供您在部署过程中参考和查阅。无论您是初次尝试单机部署,还是已经有一定经验的用户,我们相信这篇文章都将对您有所帮助。让我们一起探索如何更有效地进行单机部署,提升部署的成功率。
1. 服务器操作系统以及存储的选择
操作系统的选择我们建议 Debian12,这里也放上 Debian 官网 12 版本 amd64 下载链接
关于硬盘存储这边特别给出以下建议:
1)符合性能要求的 SSD 磁盘
性能要求参考链接,硬盘性能测试命令 fio 需要通过源安装或者离线安装(具体可以百度下),这里给出测试命令:
1、测试随机写 IOPS:
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Write_Testing
2、测试随机读 IOPS:
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Rand_Read_Testing
3、测试顺序写吞吐量:
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=10G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Write_PPS_Testing
4、测试顺序读吞吐量:
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=10G -numjobs=1 -runtime=1000 -group_reporting -filename=iotest -name=Read_PPS_Testing
2)非 SSD 盘也可以部署,只不过可能遇到磁盘 IO 导致的问题,如下
1、初次部署账号已退出
解决方案参考链接
2、平台使用过程中数据增删改查缓慢
解决方案:更换 SSD 存储,基于这个问题点,建议优先 SSD。
2. 操作系统环境准备以及环境检测
这里首先说明,单机 HAP 服务使用的端口最多四个(8880/18880/38881/38880),只需要暴露出至多三个(8880/18880/38881)即可,考虑到安全,这里默认所有用户均使用代理,并且通过 https 协议默认端口 443 进行外部访问,内网访问通过 80 端口进行访问,那么这种情况需要开启的网络端口只有三个(80/443/38881)
这里解释一下三个端口的作用:
38881 是安装管理器端口,目前主要是单机初次部署进行初始化使用;
8880 是服务端口,对应主访问地址;
18880 是服务端口,对应扩展访问地址;
80/443 是代理端口,对应后端的 8880 或者 18880,看用户侧具体需求以及网络侧具体配置。
这里暂定单机代理 Nginx 不独立部署,与 HAP 服务部署在同一台(考虑到可能涉及后续使用过程中的集成、消息推送、以及外部门户地址扫码等,这里外网地址作为主地址
):
主访问地址:外网地址 https://hap.domain.com:443 这里端口 443 默认可以隐藏,所以也可以写为 https://hap.domain.com
扩展访问地址:内网地址 http://192.168.1.1:80 这里端口 80 默认可以隐藏,所以也可以写为 http://192.168.1.1
1、操作系统环境准备
参考环境准备进行操作系统环境配置
2、环境检测
参考环境检测参数进行部署 HAP 前的设置和检查
3. Docker 环境和 HAP 系统的安装
这里补充一点,由于有的服务器安装时是最小化安装,所以需要步骤进行到这里做下 wget、curl 的安装,便于后续安装包的下载,尤其是离线环境。
#CentOS系列操作系统
yum install -y wget curl
#Debian系列操作系统
apt update
apt-get install -y wget curl
1、Docker 环境的安装
参考 Docker 安装逐步进行即可
2、HAP 系统的安装部署
参考 HAP 单机部署逐步进行即可
注意:
这里初始化过程会有一个确认访问地址的过程,默认不修改即可,如果对地址有要求,可以参考第 4 步进行配置
3、一定!一定!一定要做开机自启配置
CentOS 系列操作系统设置开机自启
Debian 系列操作系统设置开机自启:
注意:先检查是否有配置开机自启项:cat /etc/rc.local
如果没有此文件,执行下方命令会自动创建
!!!此步不要添加开机自动的命令或者脚本
以下内容#!/bin/sh -e之前不可以有空行
cat > /etc/rc.local <<EOF
#!/bin/sh -e
exit 0
EOF
赋予可执行权限
chmod +x /etc/rc.local
systemctl daemon-reload && systemctl enable --now rc-local.service
以下命令输出状态为running后再加入添加开机自动的命令或者脚本
systemctl status rc-local.service
在/etc/rc.local中exit 0上一空行添加开机自动的命令或者脚本
例如1:/usr/local/nginx/sbin/nginx
sed -ri 's#exit 0.*#/usr/local/nginx/sbin/nginx\nexit 0#' /etc/rc.local
例如2:配置hap服务开机启动,注意:{安装管理器绝对路径} 需替换成实际的安装管理器绝对路径
sed -ri '/exit 0.*/d' /etc/rc.local
echo 'sleep 30
docker system prune -f
cd {安装管理器绝对路径} && /bin/bash ./service.sh startall
exit 0' >> /etc/rc.local
4. Nginx 代理部署注意事项
这里我们按照上述第 2 步所说地址进行地址设置。
1、部署 Nginx
参考代理配置
2、主地址和扩展地址的配置差异
【推荐】
参考多地址访问进行配置即可
【不推荐】
也可参考双地址访问进行配置
上述多地址访问中修改的微服务配置文件路径默认情况下为 /data/mingdao/script/docker-compose.yaml