企业级web集群服务器搭建

TJCcc 发布于 2 天前 7 次阅读


项目需求分析文档:

架构图参考:

软件包(wecenter,jumpserver,zrlog)在cloud.tangjc.top中查找

2026/2/1:

今天编写了项目的文档,分析了项目需求,安排了规划打算,并自行画了架构图,还算好看。然后打算想用乌班图服务器来做拓展服务器的,但是发现一台乌班图占用的内存和CPU太大了,当整个架构的服务器同时启动时,我的计算机承受不了。所以打算下载乌班图22.04.3(没有图形界面)的版本,期望能用少点资源,但是发现我根本不会装系统555555555555555555555。❗至此终于懂什么叫装系统了,接下来先尝试着装一个虚拟机,再慢慢得装物理机。

2026/2/2:

今天开始动手,先初始化我的CentOS7服务器,最后再初始化乌班图服务器,乌班图用来做zabbix监控。

首先,第一步肯定是配置网卡信息了,可恶的是,乌班图出于安全考虑,默认不能用root登录,也没设root的密码,所以只能执行命令

sudo -i

进入root解释器

或者执行:

sudo passwd root

更改root密码来登录root用户

配置网卡文件:/etc/netplan/*.yaml

系统按照01,02,03顺序加载配置文件

用ens33网卡的配置文件举例:

注意缩进(2个空格),注意冒号后面要空格,注意修改文件的权限为600,不然一直在warning,注意,乌班图没有network服务,用的是NetworkManager

然后,Ubuntu 系统默认并不安装 SELinux(SELinux 主要是 CentOS/RHEL 系列的核心安全组件),Ubuntu 的默认防火墙是ufw

接着,修改进程打开文件最大数量:

echo "* - nofile 65535" >> /etc/security/limits.conf

接下来是配置阿里源仓库

先查看系统版本:

lsb_release -a

备份原文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

粘贴 Noble 专属阿里源,将下面内容完整粘贴到空的 /etc/apt/sources.list 中

deb http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse

更新并缓存生效:

sudo apt update && sudo apt upgrade -y

最后,Ubuntu 系统不支持 EPEL 仓库(EPEL 是专为 CentOS/RHEL/Fedora 系列打造的第三方软件仓库,基于 yum/dnf 包管理器),Ubuntu 有自己的第三方软件源生态,无需安装 EPEL

最最后,关闭防火墙

#关闭防火墙并关闭开机自启动
ufw disable

#检查防火墙状态
ufw status

#开启防火墙并开机自启动
ufw enable

2026/2/3:

今天进行了公钥的批量分发,编写脚本一件执行,很爽,就是乌班图系统太折腾人了

比如Ubuntu24.04.3发行版不会给root设置密码,所以禁止root登录,于是就在/etc/ssh/sshd_config改配置:

分别是允许root登录,允许分发公钥,允许存储公钥文件

私钥生成命令:

ssh-keygen -t rsa -b 2048

rsa是密钥的类型,2048是密钥的长度,必须要1024的整数倍

接着,下载并安装ansible

并设置好必要的工作目录:

创建规范的角色编排命令:

ansible-galaxy init common

执行该命令后在/etc/ansible/roles/下一键生成以下文件:

2026/2/4:

今天一直在尝试着ping通各个主机,这样就可以用ansible来实现安装部署启动服务了,可问题就在这,偏偏就是因为ansible在CentOS7和Ubuntu系统不兼容,我一直在试着解决,可始终是这个问题:缺少ansible模块下的six模块:

原因:

  1. 控制端(你的 ansible 主机)将模块代码打包
  2. 传输到 目标端(zabbix 主机)
  3. 目标端使用自己的 Python 解释器执行打包的代码
  4. 但打包的代码引用了目标端不存在的模块路径

根本原因总结:
Ubuntu 的新 Python 保护机制 + Ansible 的模块打包机制 + 版本不匹配,导致传输到目标主机的模块 ZIP 文件中缺少必要的 six.moves 模块依赖。

解决方案:

方案 A:修复打包机制(困难)

让 Ansible 正确打包所有依赖模块

方案 B:使用系统已安装的模块(看样子可行)

让 Ansible 使用目标主机上已安装的 ansible 模块,而不是打包传输

方案 C:绕过模块系统(治标不治本,没意义)

使用 raw/shell 模块,不依赖 Python 模块系统

然后删掉monitoring组,就是ansible不管理zabbix服务器了,顺便修改了group_vars目录下的全局变量的语法问题,今晚继续部署服务。

晚上执行了批量创建目录的操作

- 创建统一目录:`mkdir -p /server/tools /server/scripts /code /backup /data`;
- 站点目录划分(仅web服务器):`mkdir -p /code/{wecenter,phpshe,zrlog}`。

2026/2/5:

今天用ansible部署了nfs01服务器和backup服务器

nfs01服务器的话很简单,就是部署NFS服务,步骤:安装nfs-utils和rpcbind(nfs服务的基础服务),部署(配置文件/etc/exports添加相关信息),启动并设置开机自启(nfs和rpcbind),验证(showmount -e localhost)

backup服务器的话,就是部署rsync服务和ntp服务。

rsync服务的话,步骤依然是:安装(rsync),部署(在/etc/rsyncd.conf中添加核心配置(uid=root、gid=root、认证用户 backupuser、允许 172.16.1.0/24 网段访问、写备份目录 /backup入模块中),在/etc/rsyncd.secrets中写入认证用户的密码文件),启动并设置开机自启(rsyncd)

ntp服务的话,更简单了,步骤也是:安装(ntp),部署(在/etc/ntp.conf写入时间同步服务器的配置信息),启动并设置开机自启(ntpd)

这里注意一个点:时间同步的前提是先要设置正确的时区(timedatectl set-timezone Asia/Shanghai),再进行时间同步(ntpdate -u ntp.aliyun.com #-u 绕过特权端口UDP123并绕过防火墙)

2026/2/6 && 2026/2/7:

这两天完成了数据库服务器的部署,为了实现数据库的读写分离,我在原有的方案上,新增加了一台数据库代理服务器(172.16.1.53),安装maxscale进行数据库的读写分离,写主库,读从库。已完成了数据库的主从复制。然后像用redis实现会话一致的,然后发现我现在没学redis,不好弄,怕弄了个四不像出来,所以,打算用nginx的负载均衡调度算法当中的ip哈希方法实现会话一致。

在准备用redis实现会话一致时甚至画出来了这样一张图,仔细想了想觉得很荒谬:

在这个过程中,在数据库代理服务器中安装maxscale这个过程属实麻烦,一是因为centOS7版本太旧了,很多源仓库里面都更改了centOS7的maxscale的rpm下载包,或者已经下架了centOS7版本的maxscale。

我也是到处找才找到了这样一个rpm包:

才能成功安装。

接下来还有web业务,负载均衡跳板机和监控没做。

...后面忘记写了

唯有极致沉淀,才能造就辉煌。
最后更新于 2026-03-01