需部署双节点Nginx集群,主备节点均安装Nginx并创建专用nginx用户,再通过Keepalived配置VRRP实现VIP漂移,确保高可用;严禁root运行Nginx,须验证系统版本为SP3/SP4且架构一致。

你在银河麒麟操作系统上需要对外提供高可用Web服务,但单台Nginx无法满足故障转移与负载分担需求,必须部署多节点Nginx集群——这要求你先完成各节点的独立安装与基础配置,再通过Keepalived实现VIP漂移,或借助Consul+Registrator构建服务发现体系,而非直接安装“Nginx集群包”。
确认集群拓扑与节点角色
集群至少需两台银河麒麟服务器(建议同版本SP3/SP4、同架构x86_64或aarch64),一台作主节点(Master),一台作备节点(Backup),两者均需独立安装Nginx并监听相同端口;【严禁在任一节点上使用root用户直接运行Nginx进程】,必须创建专用nginx用户并赋权。
执行命令确认系统一致性:cat /etc/os-release | grep -E "(VERSION_ID|ARCH)" && uname -m。若输出中VERSION_ID为2309或SP5,则不在官方支持范围,需降级至SP3/SP4再操作。
各节点独立安装Nginx(联网环境)
此步骤在每台集群节点上单独执行,顺序不可跳过。
第一步:更新软件源索引并升级系统基础组件sudo yum update -y
第二步:安装Nginx主程序及全部动态模块sudo yum install -y nginx nginx-all-modules nginx-filesystem
注意:若提示“no package nginx available”,说明软件源未启用Kylin官方仓库,需先执行sudo yum-config-manager --enable kylin-base。
第三步:创建非特权运行用户并修正目录权限sudo useradd -r -s /sbin/nologin -d /var/lib/nginx nginxsudo chown -R nginx:nginx /var/lib/nginx /var/log/nginx /usr/share/nginx/html
第四步:启动服务并设为开机自启sudo systemctl start nginx && sudo systemctl enable nginx
第五步:放行防火墙HTTP/HTTPS端口且禁用SELinux(麒麟默认关闭,但需验证)sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --permanent --add-service=https && sudo firewall-cmd --reloadsudo setenforce 0 && echo "SELINUX=disabled" | sudo tee /etc/selinux/config
离线节点批量安装Nginx RPM包
当集群节点处于物理隔离网络时,必须在同版本麒麟跳板机上下载全量RPM包,再逐台部署。
方法一:在联网跳板机上确认目标架构并下载依赖链uname -m → 若输出aarch64,则执行:yum install yum-utils -y && yumdownloader --resolve --arch=aarch64 nginx nginx-all-modules nginx-filesystem
方法二:将生成的.rpm文件拷贝至目标节点/tmp/nginx_offline/目录后强制安装cd /tmp/nginx_offline/ && sudo rpm -ivh *.rpm --force --nodeps
【若提示“failed to open /etc/nginx/nginx.conf”错误,说明RPM包不含配置文件,需从麒麟官方ISO镜像中提取/etc/nginx/目录覆盖】
方法三:安装后立即创建运行用户并修复权限(不可省略)sudo useradd -r -s /sbin/nologin -d /var/lib/nginx nginxsudo mkdir -p /var/lib/nginx /var/log/nginx && sudo chown -R nginx:nginx /var/lib/nginx /var/log/nginx
配置Keepalived实现双机热备
这是最轻量、最稳定的银河麒麟Nginx集群方案,无需额外中间件,仅依赖VRRP协议抢占虚拟IP。
第一步:在两台节点上安装Keepalivedsudo yum install -y keepalived
第二步:主节点配置(/etc/keepalived/keepalived.conf)vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.1.100/24 }}
第三步:备节点配置(仅修改state为BACKUP、priority为90,其余完全一致)
第四步:启动Keepalived并设为开机自启sudo systemctl start keepalived && sudo systemctl enable keepalived
第五步:验证VIP是否生效
主节点执行ip addr show eth0 | grep 192.168.1.100应有输出;断开主节点网络后,备节点须在5秒内接管该IP。
配置Nginx反向代理与健康检查
集群前端Nginx需将请求分发至后端真实服务器,同时主动探测节点存活状态。
编辑主节点的/etc/nginx/conf.d/upstream.conf:
upstream backend_cluster { server 192.168.1.11:80 max_fails=3 fail_timeout=30s; server 192.168.1.12:80 max_fails=3 fail_timeout=30s; keepalive 32;}server { listen 80; location / { proxy_pass http://backend_cluster; proxy_next_upstream error timeout http_500 http_502 http_503 http_504; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }}
重启Nginx使配置生效:sudo nginx -t && sudo systemctl reload nginx。


















