混合基础设施部署

使用 Docker、MySQL、Nginx 和 Apache 部署现代混合技术栈。您将容器化应用程序、管理数据库,并在维护传统服务的同时配置反向代理。

DevOps 工程师DockerMySQLDevOps

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

现代化很少会一次性替换所有服务。本挑战型项目要求你运行一套本地混合栈:容器化 Web 试点、主机数据库、Nginx 网关和 Apache 遗留端点,每项服务都有独立端口和配置模型。

你将把自定义内容绑定挂载到 Docker,把 MariaDB 账户权限限定到单个数据库,把流量代理到预置内部应用,并通过 Apache .htaccess 重定向保留旧 URL。最终练习重点是在不发生端口冲突的情况下协调容器与主机服务。

你将学到什么

  • 运行名为 web-pilot 的 nginx:alpine 容器,配置绑定挂载和 8080:80 端口映射
  • 安装并启动 MariaDB,创建 globaltech_data,并授权 app_user@localhost 访问该数据库
  • 配置主机 Nginx 在端口 80 将 / 代理到预置服务 127.0.0.1:5000
  • 验证 Nginx 配置、重新加载服务,并通过公共端点确认后端内容
  • 将 Apache 移到端口 8081,在 /legacy 提供旧内容并允许 .htaccess 覆盖
  • 使用 Apache 重写规则实现并验证从 /old 到 /legacy 的 301 或 302 重定向

本课程适合谁

本项目适合准备通过结果导向挑战整合 Docker、MariaDB、Nginx 和 Apache 的 Linux 与 DevOps 学习者。

前置要求: 熟悉 Docker 运行参数与绑定挂载、Linux 软件包和服务管理、基础 SQL 授权、Web 服务器配置、端口及 curl;这是考核型项目。

学习环境: 可通过浏览器访问的 Linux 主机,配有 sudo、Docker、APT、MariaDB、Nginx、Apache、端口 5000 上的预置后端和本地网络访问;无需云账户。

常见问题

这里的“混合基础设施”是指混合云或多节点部署吗?

不是。项目在一台实验主机上组合一个 Docker 工作负载和主机安装的数据库、Web 服务,不会配置云资源或多台服务器。

MariaDB 数据库会连接到 Web 应用吗?

不会。你会独立验证数据库、本地用户、密码和限定于该数据库的权限;应用 Schema、表、迁移和客户端集成不在任务范围内。

我需要构建 Nginx 代理后的后端吗?

不需要。模拟内部应用已运行在 127.0.0.1:5000;你的职责是配置端口 80 上的 Nginx,使 curl http://localhost 能访问它。

为什么 Nginx 和 Apache 能同时运行?

它们监听不同主机端口:Nginx 使用 80,Apache 使用 8081,Docker 试点使用 8080。Apache 挑战还要求 /old 重定向必须定义在 .htaccess 中,而不只是主配置文件。

教师

labby
Labby
Labby is the LabEx teacher.