本文为在香港机房的香港服务器2上快速搭建典型 Web / 数据库服务并实施基础安全加固的实战指南。内容从准备、软件选择、安装步骤到必备的安全配置逐项说明,提供可执行的检查点与常见注意事项,帮助你在保证可用性的同时降低被入侵风险并便于后续运维。
在正式安装前,应先完成基础准备:确认香港服务器2的镜像类型(Ubuntu/CentOS)、公网/IP、管理控制台(VNC/控制台)是否可用,准备一台本地用于SSH登录的电脑并生成SSH密钥对。建议设置正确的时区(例如 Asia/Hong_Kong)、调整主机名与DNS解析、关闭不必要的控制台服务。还要评估资源需求(CPU、内存、磁盘、带宽)并划分磁盘分区或LVM,预留日志与备份空间,确保快照/备份策略可用。
常见组合有 Nginx+PHP-FPM+MySQL/MariaDB(轻量高并发)和 Apache+PHP+MySQL(兼容性好)。选择时考虑框架与负载:静态/反向代理首选Nginx;需要.htaccess或复杂模块时选Apache。数据库推荐使用MariaDB或MySQL 8.x,或根据性能选用Percona。若部署容器化应用可考虑Docker/Podman。根据需要安装Redis、Memcached作为缓存,Elasticsearch作为搜索引擎时注意内存与文件句柄限制。
以Ubuntu为例:先更新系统(apt update && apt upgrade),添加官方源安装最新版。安装Nginx:apt install nginx,启用并设置开机自启;配置server块并将PHP进程通过Unix socket或127.0.0.1:9000连接PHP-FPM(apt install php-fpm php-mysql)。MySQL安装后运行mysql_secure_installation完成初始加固(设置root密码、移除匿名用户、禁止远程root登录、删除测试库)。启用基于角色的数据库账户管理,限制绑定地址为127.0.0.1或内部网段,使用强密码并开启慢查询日志与性能监控。
SSH是远程管理入口,若未加固容易被暴力破解;证书用于加密传输,能避免中间人攻击;防火墙用于限制可访问端口,降低攻击面。建议在香港服务器2上:禁用密码登录,仅允许密钥登录并禁止root直连;修改默认SSH端口(结合安全策略)并使用Fail2Ban阻止重复失败尝试;安装并配置Let's Encrypt(certbot)自动续期证书,启用HTTP->HTTPS跳转;使用UFW/Firewalld或iptables定义默认拒绝策略,仅开放必要端口(如80、443、应用管理端口与内部运维端口)。
实施步骤要系统化:1) 更新与自动化:启用自动安全更新或使用unattended-upgrades;2) 账户与权限:最小权限原则,使用sudo用户并限制sudoers,移除不必要系统账号;3) 日志与监控:配置rsyslog或集中式日志,部署Prometheus/Grafana或第三方监控,设置磁盘/负载告警;4) 入侵防护:安装Fail2Ban、配置iptables规则并定期审计;5) 文件完整性:使用AIDE或OSSEC检测关键文件篡改;6) 限制服务:关闭不必要服务与端口,使用chroot或容器隔离高风险服务;7) 备份策略:数据库与文件分离备份,并做定期恢复演练。
评估应用峰值并规划冗余:Web静态流量需更多带宽,数据库需更高IOPS与内存。建议为MySQL保留至少实际数据大小2倍的磁盘空间与充足的innodb_buffer_pool_size(一般为可用内存的60-80%),给PHP-FPM设置合理的max_children以避免OOM。为日志与备份预留单独磁盘或网络存储。设置ulimit、文件句柄(nofile)与进程限制,避免在高并发下耗尽系统资源。开启swap谨慎配置并监控磁盘延迟。
常见故障包括端口未开放、服务未起、权限错误与证书问题。上线前检查清单建议包含:1) SSH与防火墙连通性测试;2) Nginx配置语法检查并重载;3) PHP-FPM与数据库连接测试;4) SSL证书有效期与自动续期验证;5) 日志目录权限与磁盘空间检查;6) 备份与恢复流程演练;7) 性能基线测试(压力/并发测试)并配置速率限制与缓存。文档化配置与变更记录,使用CM/配置管理工具(Ansible/Chef/Puppet)可提高可复现性并减少人为误操作。
