在 Ubuntu 服务器上部署 Hexo 博客到域名

#blog #部署

根据您的代码仓库,我看到这是一个使用 Hexo 生成的静态博客网站。要将其映射到您的域名并使其可访问,您需要完成以下步骤:

1. 安装并配置 Nginx

首先,您需要在 Ubuntu 服务器上安装 Nginx 作为 Web 服务器:

1
2
sudo apt update
sudo apt install nginx

2. 配置 Nginx 虚拟主机

创建一个 Nginx 配置文件,将您的域名指向博客的静态文件目录:

1
sudo nano /etc/nginx/sites-available/your-blog-name

在文件中添加以下配置(替换 yourdomain.com 为您的实际域名):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/your-blog-name;
index index.html;

location / {
try_files $uri $uri/ =404;
}

# 启用 gzip 压缩
gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

3. 启用站点配置并重启 Nginx

1
2
3
sudo ln -s /etc/nginx/sites-available/your-blog-name /etc/nginx/sites-enabled/
sudo nginx -t # 测试配置是否有语法错误
sudo systemctl restart nginx

4. 将博客文件复制到网站目录

创建网站目录并复制您的博客文件:

1
2
3
sudo mkdir -p /var/www/your-blog-name
sudo cp -r /path/to/your/cloned/repo/* /var/www/your-blog-name/
sudo chown -R www-data:www-data /var/www/your-blog-name

请将 /path/to/your/cloned/repo/ 替换为您实际克隆仓库的路径。

5. 配置域名 DNS

确保您的域名 DNS 记录已正确设置,将域名指向您的服务器 IP 地址:

  • 添加 A 记录:将您的域名指向服务器 IP
  • 如果需要 www 子域名,也添加相应的 A 记录或 CNAME 记录

6. 配置 HTTPS(可选但推荐)

使用 Let’s Encrypt 为您的网站启用 HTTPS:

1
2
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

按照提示完成 HTTPS 证书的配置。

7. 定期更新博客内容

如果您需要更新博客内容,可以在本地修改后推送到 Git 仓库,然后在服务器上拉取更新:

1
2
3
cd /path/to/your/cloned/repo
git pull
cp -r * /var/www/your-blog-name/

或者考虑设置一个自动部署脚本,当 Git 仓库更新时自动更新网站内容。

这样设置完成后,访问您的域名应该就能看到您的博客内容了。如果遇到任何问题,可以查看 Nginx 的错误日志:

1
sudo tail -f /var/log/nginx/error.log