你可以使用 docker-compose
来一键搭建 Nginx 和 Halo 博客。下面是一个示例的 docker-compose.yml
文件,展示了如何配置 Nginx 作为反向代理,并使用 Halo 博客。
1. 创建 docker-compose.yml
文件
在你的项目目录中创建一个 docker-compose.yml
文件,内容如下:
yaml复制代码version: '3'
services:
nginx:
image: nginx:latest
container_name: nginx
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./logs/nginx:/var/log/nginx
depends_on:
- halo
halo:
image: halohub/halo:latest
container_name: halo
ports:
- "8090:8090"
environment:
- HALO_EXTERNAL_URL=http://your-domain.com
volumes:
- ./halo:/root/.halo2
2. 创建 Nginx 配置文件
在你的项目目录中创建一个 nginx.conf
文件,内容如下:
nginx复制代码events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name your-domain.com;
location / {
proxy_pass http://halo:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
}
}
3. 启动 Docker Compose
在项目目录中运行以下命令启动服务:
bash
复制代码
docker-compose up -d
4. 访问你的博客
在浏览器中打开 http://your-domain.com
,你应该能够看到 Halo 博客的欢迎页面。
5. 注意事项
- 域名:确保将
your-domain.com
替换为你的实际域名或服务器 IP 地址。 - 防火墙:确保你的服务器开放了必要的端口(例如 80 端口)。
- 持久化存储:
./halo:/root/.halo2
挂载了 Halo 的数据目录,以确保数据持久化。你可以根据需要调整挂载路径。 - 日志:Nginx 的访问日志和错误日志会保存在
./logs/nginx
目录中。
这样,你就可以通过 Docker Compose 一键搭建 Nginx 和 Halo 博客环境了。