使用 CentOS Stream 搭建 Web 服务器时,需要特别注意其作为 滚动更新(Rolling Release) 的 RHEL 上游分支的特性。它既不是传统的稳定版 CentOS Linux(已停止维护),也不是直接的 RHEL,而是介于两者之间。
以下是搭建过程中需要重点关注的核心问题及建议:
1. 理解 CentOS Stream 的定位与风险
- 非生产级稳定性:CentOS Stream 是 RHEL 的上游,意味着它会先接收新特性、补丁和安全更新。虽然比 Fedora 稳定,但不如 RHEL 或传统 CentOS 稳定。
- ⚠️ 关键建议:不建议用于对稳定性要求极高的生产环境。如果必须使用,请确保有完善的备份和回滚机制。
- 频繁更新:由于是滚动更新,软件包版本变化较快,可能导致依赖冲突或配置不兼容。
- ✅ 建议:定期更新系统,但避免在业务高峰期进行大规模更新;测试后再在生产环境应用重大版本升级。
2. 软件源与包管理
- 默认启用 AppStream 模块流(Module Streams):
- CentOS Stream 使用
dnf module管理多个版本的软件(如 PHP 7.4/8.0/8.1)。 - ❗ 注意:安装软件时需明确指定版本,否则可能安装最新但不稳定的版本。
# 示例:安装特定版本的 PHP dnf module install php:8.1
- CentOS Stream 使用
- EPEL 仓库兼容性:
- 确保 EPEL 版本与 CentOS Stream 版本匹配。CentOS Stream 9 对应 EPEL 9,CentOS Stream 8 对应 EPEL 8。
- 使用错误版本的 EPEL 可能导致包冲突或无法安装。
3. 安全性配置
- SELinux 状态:
- CentOS Stream 默认启用 SELinux。Web 服务(如 Apache/Nginx)可能需要额外策略调整。
- ✅ 建议:熟悉 SELinux 基本操作,或使用
setsebool临时放宽权限进行测试,再逐步加固。
- 防火墙(firewalld):
- 默认启用 firewalld,需手动开放 HTTP(80)、HTTPS(443)等端口。
firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload
- 默认启用 firewalld,需手动开放 HTTP(80)、HTTPS(443)等端口。
- 最小化安装原则:
- 仅安装必要的服务,减少攻击面。避免安装 GUI 桌面环境。
4. Web 服务器选型与配置
A. Apache vs Nginx
- Apache:
- 通过
httpd包安装,支持.htaccess动态配置。 - 注意:Apache 版本随 Stream 更新较快,配置文件路径为
/etc/httpd/。
- 通过
- Nginx:
- 通过
nginx包安装,性能更高,适合高并发。 - 注意:Nginx 官方仓库可能提供更新版本,可考虑添加 Nginx 官方 YUM 源以获取最新版本。
- 通过
B. 反向X_X与负载均衡
- 若使用 Nginx 作为反向X_X,需注意 upstream 配置和健康检查。
- 结合 SSL/TLS:推荐使用 Let’s Encrypt 自动证书管理(certbot),但需确保 certbot 与当前系统版本兼容。
5. 数据库与服务集成
- MySQL/MariaDB:
- CentOS Stream 9 默认包含 MariaDB 10.5+。
- 若需 MySQL,可通过 Oracle 官方 YUM 源安装。
- ⚠️ 注意:数据库版本可能与应用框架(如 WordPress、Drupal)的兼容性需提前验证。
- PHP-FPM:
- 使用模块化安装后,需启动并启用 PHP-FPM 服务。
- 配置 Nginx/Apache 与 PHP-FPM 通信时,注意 socket 或 TCP 端口的一致性。
6. 监控与维护
- 日志管理:
- 使用
journalctl查看 systemd 服务日志。 - Web 服务日志位于
/var/log/httpd/或/var/log/nginx/。
- 使用
- 自动化更新:
- 禁用自动更新(
systemctl disable yum-cron),改为手动或定时任务控制更新时机。
- 禁用自动更新(
- 备份策略:
- 定期备份网站文件、数据库和配置文件。
- 使用
rsync或专用工具(如 Bacula、Veeam)进行增量备份。
7. 替代方案建议
如果对稳定性要求极高,建议考虑:
- RHEL(Red Hat Enterprise Linux):商业支持,长期稳定。
- Rocky Linux / AlmaLinux:CentOS 的替代品,1:1 二进制兼容 RHEL,提供 10 年支持周期,更适合生产环境。
- Ubuntu LTS / Debian Stable:社区活跃,文档丰富,长期支持版本稳定可靠。
总结 checklist
| 项目 | 注意事项 |
|---|---|
| 系统选择 | 确认是否真的需要 CentOS Stream,生产环境优先考虑 Rocky/Alma/RHEL |
| 软件源 | 正确配置 EPEL,使用 dnf module 管理软件版本 |
| 安全 | 启用 SELinux、firewalld,最小化安装 |
| Web 服务 | 明确选择 Apache/Nginx,配置 SSL/TLS |
| 更新策略 | 禁用自动更新,手动测试后应用补丁 |
| 备份 | 建立定期备份机制,包括数据和配置 |
通过以上措施,可以最大程度降低在 CentOS Stream 上搭建 Web 服务器的风险,确保服务的稳定性和安全性。
云服务器