1. 前期准备与选型
准备:购买
香港云服务器(1核2G,预算约100元/月),准备域名并能管理DNS。选型理由:为节省资源建议使用静态站点生成器(如Hugo)搭配Nginx,性能好且内存占用小。备份:本地备份域名、SSH私钥与站点源码。
2. 连接服务器与更新系统
步骤:1) 用SSH连接:ssh root@服务器IP;2) 更新系统:apt update && apt upgrade -y(Ubuntu/Debian);3) 创建非root用户并放入sudo:adduser bloguser && usermod -aG sudo bloguser;4) 禁用root远程登录和更改默认SSH端口在/etc/ssh/sshd_config。
3. 配置基础防火墙与交换分区
说明:1) 启用UFW:ufw allow OpenSSH && ufw allow 'Nginx Full' && ufw enable;2) 创建swap文件(2GB):fallocate -l 2G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile,并写入/etc/fstab以持久化。
4. 安装Nginx与必要工具
命令:apt install nginx git curl -y。验证:systemctl enable --now nginx。提示:若使用非root用户操作,用sudo前缀。检查80端口:ss -tunlp | grep 80。
5. 安装Hugo并初始化站点
步骤:1) 下载Hugo二进制或apt安装(推荐使用最新Release);2) 创建站点:hugo new site myblog;3) 选择或下载主题:git clone <主题仓库> themes/xxx;4) 本地测试:hugo server -D,在本机预览并修改配置文件config.toml。
6. 构建静态文件并上传到服务器
方式A(推荐CI):在本地构建hugo: hugo -D,生成public目录;使用rsync上传:rsync -avz public/ bloguser@服务器IP:/var/www/myblog。方式B(在服务器上构建):在服务器上安装hugo并git clone仓库后运行hugo生成。
7. 配置Nginx托管静态站点
示例配置:在/etc/nginx/sites-available/myblog写入server块,root /var/www/myblog; index index.html; server_name yourdomain.com www.yourdomain.com; 并配置try_files $uri $uri/ =404;,然后ln -s到sites-enabled并nginx -t && systemctl reload nginx。
8. 域名解析与HTTPS(Let's Encrypt)
步骤:1) 在域名服务商添加A记录指向服务器IP,等待解析生效;2) 安装certbot:apt install certbot python3-certbot-nginx -y;3) 运行:certbot --nginx -d yourdomain.com -d www.yourdomain.com,按提示自动配置HTTPS;4) 验证定时续期:certbot renew --dry-run。
9. 性能优化与缓存
配置建议:1) 启用gzip:在nginx.conf加gzip on; gzip_types text/css application/javascript; 2) 增加缓存头:location ~* \.(js|css|png|jpg|jpeg|gif|svg)$ { expires 30d; add_header Cache-Control "public"; } 3) 使用CDN(Cloudflare)进一步减轻带宽。
10. 安全加固与备份策略
细节:1) 安装fail2ban防爆破:apt install fail2ban;2) 配置自动备份脚本:每天rsync /var/www/myblog到远程备份或压缩上传到对象存储;3) 定期更新系统并检查日志/磁盘:logrotate与cron结合。
11. 日常维护与CI/CD实践
流程:1) 本地写文章后git commit && git push到代码仓库;2) 可用GitHub Actions或GitLab CI在push时远程构建并rsync到服务器,减少手工上传;3) 监控:使用简单的uptime机器人或免费监控服务。
12. 问:在1核2G的服务器上运行WordPress会不会很吃力?
答:会比较吃力。WordPress是动态CMS,PHP+MySQL占用较多内存与CPU,1核2G可以运行但需大量优化(PHP-FPM调整、MySQL内存限制、缓存插件),并建议使用Swap与对象缓存或改用静态生成器如Hugo节省资源。
13. 问:如何保证在香港节点的访问速度和稳定性?
答:首先选择就近的香港节点与可靠机房,启用HTTPS与HTTP/2,使用CDN(如Cloudflare)做全球加速,配置缓存与压缩,监控带宽与响应时间,必要时升级带宽或加入多节点部署。
14. 问:部署完成后如何做备份与恢复最简单?
答:最简单方案是:把站点静态文件(/var/www/myblog)和Hugo源代码仓库定期压缩并rsync到远程备份服务器或对象存储(如S3/阿里OSS),记录Nginx与certbot配置文件。恢复时只需把压缩包解压到/var/www并reload nginx,若有SSL可从备份恢复或重申请证书。
来源:教学部署示例在香港云服务器1核2G100元上搭建个人博客的实践指南