Ubuntu服务器搭建Halo博客完整教程
本文将详细介绍如何在Ubuntu服务器上使用Docker部署Halo博客系统,并配置Nginx反向代理和HTTPS证书。
环境要求
- Ubuntu 22.04 LTS 服务器
- 已备案的域名(国内服务器)
- 服务器开放80和443端口
一、安装Docker
1.1 更新系统并安装依赖
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
1.2 添加Docker官方GPG密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
1.3 安装Docker
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
1.4 配置Docker镜像加速
sudo mkdir -p /etc/docker
cat > /etc/docker/daemon.json << 'EOF'
{
"registry-mirrors": ["https://docker.1ms.run"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
二、部署Halo博客
2.1 创建目录
sudo mkdir -p /opt/halo
cd /opt/halo
2.2 创建docker-compose.yml
services:
halo:
image: halohub/halo:2.20
container_name: halo
restart: always
volumes:
- ./data:/root/.halo2
ports:
- "8090:8090"
2.3 启动Halo
sudo docker compose up -d
三、配置Nginx反向代理
3.1 安装Nginx
sudo apt-get install -y nginx certbot python3-certbot-nginx
3.2 配置反向代理
创建 /etc/nginx/sites-available/your-domain.com:
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
3.3 启用配置
sudo ln -sf /etc/nginx/sites-available/your-domain.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
四、配置HTTPS
sudo certbot --nginx -d your-domain.com --non-interactive --agree-tos --email your@email.com
五、常用命令
# 查看状态
docker compose ps
# 查看日志
docker compose logs -f halo
# 重启
docker compose restart
# 更新
docker compose pull && docker compose up -d
总结
通过以上步骤,成功在Ubuntu上部署了Halo博客系统。