侧边栏壁纸
博主头像
运维贼船的技术小站 博主等级

行动起来,活在当下

  • 累计撰写 30 篇文章
  • 累计创建 19 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Nginx容器化运行的Docker Compose最佳实践

aoarasi
2025-08-18 / 0 评论 / 0 点赞 / 9 阅读 / 0 字

这是一个Nginx容器化运行的Docker Compose实践示例,是不是最佳那要看是否适合实际应用。 它涵盖了配置文件挂载、日志和静态文件的数据持久化、健康检查等方面。

假设项目目录结构如下:

nginx_project/
├── docker-compose.yml
├── conf.d
│   └── default.conf  # Nginx自定义配置文件
├── html
│   ├── index.html    # 静态网页文件
│   └── other_files   # 其他静态资源
└── logs

1. docker-compose.yml 文件内容

version: '3.8'
services:
  nginx:
    image: nginx:latest
    container_name: my_nginx
    ports:
      - "80:80"
      - "443:443"
    volumes:
      -./conf.d:/etc/nginx/conf.d  # 挂载自定义配置文件目录
      -./html:/usr/share/nginx/html  # 挂载静态文件目录
      -./logs:/var/log/nginx  # 挂载日志目录
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 30s

2. 配置文件说明

  • image: 指定使用的Nginx镜像,这里使用最新版本。

  • container_name: 为容器指定一个自定义名称,方便管理和识别。

  • ports: 将容器内的80端口(HTTP)和443端口(HTTPS)映射到宿主机的对应端口,以实现外部访问。

  • volumes:

    • ./conf.d:/etc/nginx/conf.d:将宿主机当前目录下的 conf.d 目录挂载到容器内的 /etc/nginx/conf.d 目录,这样可以在宿主机上修改Nginx配置文件,容器内的配置会同步更新。

    • ./html:/usr/share/nginx/html:将宿主机的 html 目录挂载到容器内的 /usr/share/nginx/html 目录,用于存放静态网页文件和其他静态资源,实现数据持久化。

    • ./logs:/var/log/nginx:将宿主机的 logs 目录挂载到容器内的 /var/log/nginx 目录,用于保存Nginx的访问日志和错误日志等,方便排查问题。

  • restart: 设置容器的重启策略为除非手动停止,否则自动重启,以保证服务的可用性。

  • healthcheck: 配置健康检查,使用 curl 命令检查Nginx服务是否能正常响应,每10秒检查一次,超时时间为5秒,连续失败3次则认为容器不健康,启动后的30秒内不进行检查。

3. 自定义配置文件示例(conf.d/default.conf

server {
    listen       80;
    server_name  localhost;
​
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }
​
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

这个配置文件定义了一个基本的Nginx服务器,监听80端口,将请求导向 /usr/share/nginx/html 目录下的静态文件。

4. 静态网页文件示例(html/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>My Nginx Page</title>
</head>
<body>
    <h1>Welcome to My Nginx Page</h1>
</body>
</html>

5. 操作步骤

  1. 将上述文件按照目录结构放置在宿主机上。

  2. nginx_project 目录下,打开终端,执行 docker compose up -d 命令,以守护进程模式启动Nginx容器。

  3. 可以通过浏览器访问 http://localhost 来查看Nginx服务是否正常运行,同时可以查看 logs 目录下的日志文件,以及在宿主机修改 conf.d 目录下的配置文件来调整Nginx配置。

通过以上配置,能够实现Nginx的容器化运行,并具备配置灵活调整、数据持久化和健康检查等功能,满足生产环境的基本需求。

0

评论区