Day: 2021年11月5日

使用 NGINX 将环境变量注入静态网站

静态站点生成非常适合发布文档。在最近的一个项目中,我们选择使用 NGINX 作为 Web 服务器来托管 HTML 和 CSS 文件。但是,我们还希望使用 SSO 保护站点。这就是事情变得有点困难的地方。

当然,当使用 HTTP 基本身份验证以外的 SSO 机制时,我们需要向用户显示“退出”按钮。但是当与静态站点生成 (SSG) 结合使用时,我们还不知道注销 URI,因为它可能取决于部署的特定配置。

为了实际渲染按钮,我们面临两个选择:

  1. 不在 CI 中运行 SSG 工具,而是在 Docker 容器启动时运行。
  2. 呈现没有 URI 的链接,并让 Web 服务器在运行时注入它。

在我们的例子中,SSG 工具是 Jekyll,所以添加它的整个 Ruby 工具链会违背使用 NGINX 的目的:尽可能轻量级。此外,这个巨大的图像会创造更多的攻击面。[1]