1.
选购与初始准备
确保选择标注“CN2 GIA”或“CN2”直连出口的香港机房;购买 2核/1G 内存、至少 20GB 磁盘、1T/月流量或按需计费方案。准备工作:本地安装好 SSH 客户端(Linux/Mac 终端或 Windows 的 PuTTY/Windows Terminal),准备好公网 IP、root 密码或密钥。下单后拿到控制面板,记录重装镜像选项(推荐 Debian 12 或 Ubuntu 22.04 LTS)。
2.
系统重装与基础安全配置
在控制面板重装为 Debian/Ubuntu,然后按步骤进行:
- 登录:ssh root@your_ip
- 更新系统:apt update && apt upgrade -y
- 创建管理用户并禁用密码登录:
adduser adminuser
usermod -aG sudo adminuser
mkdir /home/adminuser/.ssh && chmod 700 /home/adminuser/.ssh
将本地公钥追加到 /home/adminuser/.ssh/authorized_keys
chmod 600 /home/adminuser/.ssh/authorized_keys && chown -R adminuser:adminuser /home/adminuser/.ssh
- 在 /etc/ssh/sshd_config 修改:PermitRootLogin no, PasswordAuthentication no, 更改 Port 例如 2222,然后 systemctl restart sshd。
3.
内核与网络性能优化(启用 BBR)
2核1G 环境受限但 BBR 和部分 sysctl 调优显著提升延迟与吞吐:
- 检查模块:lsmod | grep bbr
- 若无,启用内核参数(Debian/Ubuntu):
echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf
sysctl -p
- 验证:sysctl net.ipv4.tcp_congestion_control && sysctl net.core.default_qdisc
- 调整:在 /etc/sysctl.conf 添加并生效以下常用项:
net.ipv4.tcp_fin_timeout=30
net.ipv4.tcp_tw_reuse=1
net.ipv4.tcp_syncookies=1
net.core.somaxconn=1024
net.ipv4.ip_local_port_range=1024 65000
4.
内存与交换分区设置(适用于 1GB 内存)
1G 内存应配置交换文件以防止 OOM:
- 创建 1G swap:
fallocate -l 1G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab
- 调整 swappiness(降低到 10):
sysctl vm.swappiness=10
echo 'vm.swappiness=10' >> /etc/sysctl.conf
5.
防火墙与入侵防护
使用 UFW 或 iptables 做最小开放端口策略:
- 安装 UFW:apt install ufw -y
- 允许 SSH(若更改端口):ufw allow 2222/tcp
- 默认拒绝并启用:ufw default deny incoming; ufw default allow outgoing; ufw enable
- 安装 fail2ban:apt install fail2ban -y,创建 /etc/fail2ban/jail.d/defaults-debian.local 启用 sshd 保护,重启 fail2ban
6.
应用栈部署(Nginx + PHP-FPM / 静态站点)
针对中小企网站常见组合,轻量配置示例:
- 安装 Nginx:apt install nginx -y
- 配置 worker 与 keepalive:在 /etc/nginx/nginx.conf 设置 worker_processes auto; worker_connections 1024;
- 建站示例:
mkdir -p /var/www/example && chown -R www-data:www-data /var/www/example
创建 /etc/nginx/sites-available/example,配置 server_name、root、index 和 php 代理(若用 PHP-FPM),然后 ln -s 到 sites-enabled
- SSL:apt install certbot python3-certbot-nginx -y; certbot --nginx -d example.com
7.
轻量数据库与缓存(MySQL/MariaDB + Redis)
在 1G 内存上需谨慎配置数据库:
- 安装 MariaDB:apt install mariadb-server -y
- 基本优化 /etc/mysql/mariadb.conf.d/50-server.cnf,示例小内存配置:
innodb_buffer_pool_size=256M
key_buffer_size=64M
max_connections=50
- 安装 Redis:apt install redis-server -y
在 /etc/redis/redis.conf 设置 supervised systemd、maxmemory 128mb、maxmemory-policy allkeys-lru
- 备份:定期使用 mysqldump 和 rysnc 备份数据库与站点文件到外部存储
8.
网络与延迟测试、验证 CN2 路由
验证到中国大陆的连通性非常关键:
- 使用 ping/traceroute:ping -c 6 mainland_ip; traceroute -n mainland_ip
- 用 iperf3 测速(需要大陆一端服务器或第三方测速):iperf3 -c server_ip -p port
- 若出现高延迟或丢包,与服务商确认是否真实走 CN2;要求提供路由样本(traceroute)与 ASN 信息
9.
监控、日志与自动化运维
轻量监控与告警至少包含:磁盘、内存、CPU、网络、进程:
- 安装 netdata(轻量)或使用 top/htop + vnstat 简单监控:
bash <(curl -Ss https://my-netdata.io/kickstart.sh)
- 日志轮转:确认 /etc/logrotate.d/nginx 与 mysql 正常,避免磁盘耗尽
- 自动更新与安全补丁:设置 unattended-upgrades 或编写定期 apt update && apt upgrade -y 的 cron 脚本
10.
部署、测试与发布流程建议
中小企业建议采用简单可复用流程:
- 本地开发 -> Git 仓库 -> 在服务器上使用 CI(GitHub Actions 或 GitLab CI)运行自动化脚本:
- pull 最新代码
- 运行构建、单元测试
- rsync 部署到 /var/www/example
- 重载 nginx: systemctl reload nginx
- 发布前做压力测试(ab 或 wrk 小流量仿真)并监控内存与 CPU 峰值
11.
问:CN2 与普通香港线路部署上最大的区别是什么?
答:CN2 路由针对中国大陆到香港的往返延迟与丢包更优,表现为更稳定的 RTT 和更少的中间跳丢包。但作为用户需在选购时索取 provider 的路由样本(traceroute)并做实测(ping/iperf)以验证是否真实走 CN2,配置上并无特别不同,仍需按上文做内核、BBr、MTU、应用层优化。
12.
问:1G 内存如何避免服务因内存不足频繁 OOM?
答:关键是内存分配与服务精简:启用 1G swap、为数据库与缓存设置保守内存(如 innodb_buffer_pool_size=256M、redis maxmemory=128M)、设置 max_connections 限制、使用 PHP-FPM 动态进程池(pm = ondemand)并配置合理的 pm.max_children,同时用监控工具提前告警。
13.
问:部署后常见故障如何快速排查?
答:优先检查三点:1) 网络连通:ping/traceroute/iperf;2) 资源是否耗尽:htop/free -m、df -h、dmesg 查 OOM;3) 服务日志:/var/log/nginx/error.log、/var/log/mysql/error.log;根据日志定位后重启服务(systemctl restart nginx/mariadb),并从监控数据回溯发生时间点的趋势。
来源:香港cn2 2核1g 配置解析与中小企业实战部署建议