# Nginx 版本锁定

**URL:** https://meta.discourse.org/t/nginx-version-pinning/394488
**Category:** Bug
**Created:** [2026年一月27日 22:39 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488 "2026-01-27T22:39:11Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![pacharanero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pacharanero/32/500583_2.png) [@pacharanero](https://meta.discourse.org/u/pacharanero)
#### Post date: [2026年一月27日 22:39 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/1 "2026-01-27T22:39:11Z")

</div>

严格来说不算 #Contribute > Bug（贡献：Bug），但不清楚它应该归入哪个其他类别。这确实是个问题，而且它也不是 #Contribute > Feature（贡献：功能）。可能是 #Support（支持），但我对此相当自信，知道自己在做什么。

参见：3 年前的一篇类似帖子 [Dockerfile in official install instructions uses unsupported version of Nginx](https://meta.discourse.org/t/dockerfile-in-official-install-instructions-uses-unsupported-version-of-nginx/248779)

本周进行的一次常规渗透测试发现，当前使用的 NGINX 版本已停止维护（EOL）。虽然无法利用该漏洞，但它已被标记为需要尽快修复。

尝试通过 `git pull` 更新 Discourse 仍未解决此问题，因为[尽管 Discourse Docker 仓库已更新](https://github.com/discourse/discourse_docker/commit/ddac3562c0dfe2563e7076d0a16d09dd48c86d15)，但模板将基础镜像固定为上一个版本（discourse/base:2.0.20260109-0020）。

有几个问题：

- 为什么固定的 NGINX 版本如此陈旧，以至于已经停止维护？是否有我不了解的考量因素？

- 为什么新版本选择的是 1.28.1 而不是 1.29.4（[截至 2026.01.27 的最新版本](https://endoflife.date/nginx)）——这是否也有其考量？

总体而言，Discourse 似乎非常倾向于让所有用户保持在较新的版本上（这看起来很合理），例如之前的 `tests-passed` 标签。

我该如何更新 NGINX（理想情况下不要通过本地修改）？

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2026年一月28日 09:48 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/3 "2026-01-28T09:48:18Z")

</div>

> [@pacharanero](#):
>
> 为什么固定的 NGINX 版本如此之旧，以至于已经 EOL（生命周期结束）了？是我不知道的什么特殊原因吗？

没有特别的原因，只是我们有一段时间没有进行更新过程了。你说得对，我们理想情况下应该在它 EOL 之前发现这个问题。

> [@pacharanero](#):
>
> 为什么选择新版本是 1.28.1，而不是 1.29.4

1.28.1 是最新的“稳定”版本，所以我们选择了它。1.29.x 是变化更快的“主线”版本，我们目前不需要那些新功能。

> [@pacharanero](#):
>
> 因为 [尽管 Discourse Docker 仓库已更新](https://github.com/discourse/discourse_docker/commit/ddac3562c0dfe2563e7076d0a16d09dd48c86d15)，但模板将基础镜像固定为上一个版本 (discourse/base:2.0.20260109-0020)

感谢提出这个问题。我们现在已经[完成了在模板中提升标签的操作](https://github.com/discourse/discourse_docker/commit/a43dcf84b9f331292a834e03864b2e05a6db067c)，所以再次运行 `./launcher rebuild app` 应该就能得到新的 nginx 版本了。

---

<div class="post-metadata">

### Author: ![pacharanero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pacharanero/32/500583_2.png) [@pacharanero](https://meta.discourse.org/u/pacharanero)
#### Post date: [2026年一月28日 12:24 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/4 "2026-01-28T12:24:38Z")

</div>

> [@david](#):
>
> 感谢提出这个问题。

没问题，感谢 @david 快速回复！

> [@david](#):
>
> 所以再运行一次 `./launcher rebuild app` 应该就能得到新的 nginx 版本。

遗憾的是，这似乎仍然不起作用。运行 `git pull`，然后 `./launcher rebuild app` 确实拉取了一个新镜像（discourse/base:2.0.20260116-2039），但该镜像似乎仍然包含 nginx 1.26.3：

```plaintext
root@server:/var/discourse# docker exec -it app nginx -v
nginx version: nginx/1.26.3

```

我正在从我这边排查，以防这是某种奇怪的容器缓存问题，但据我所知，问题在于那个 20260116-2039 基础镜像仍然包含 NGINX 1.26.3。

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2026年一月28日 12:36 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/6 "2026-01-28T12:36:14Z")

</div>

有趣，我看到了同样的情况。虽然我们在配置文件中更新了 NGINX，但看起来镜像的升级可能是专门为了升级 Redis，而不是 NGINX。

我将与团队核实，看看是否可以固定一个更新的镜像版本。

---

<div class="post-metadata">

### Author: ![pacharanero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pacharanero/32/500583_2.png) [@pacharanero](https://meta.discourse.org/u/pacharanero)
#### Post date: [2026年一月29日 15:59 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/7 "2026-01-29T15:59:41Z")

</div>

关于 NGINX 版本固定的问题有任何更新吗？我看到了 2026.1.0-latest 版本的发布，但据我所知，它没有升级基础镜像。

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2026年一月29日 17:25 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/8 "2026-01-29T17:25:29Z")

</div>

我们刚刚再次更新了镜像：[Bump base image to `20260129-0023` (#1035) · discourse/discourse\_docker@068819b · GitHub](https://github.com/discourse/discourse_docker/commit/068819be8525b148f01f914ea5c63c3880cfde39)

所以下一次重建应该会为您提供 NGINX 1.28.1

---

<div class="post-metadata">

### Author: ![pacharanero](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pacharanero/32/500583_2.png) [@pacharanero](https://meta.discourse.org/u/pacharanero)
#### Post date: [2026年一月29日 18:40 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/9 "2026-01-29T18:40:02Z")

</div>

谢谢 @david，现在可以正常工作了。

---

<div class="post-metadata">

### Author: ![david](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/david/32/157490_2.png) [@david](https://meta.discourse.org/u/david)
#### Post date: [2026年一月30日 10:12 UTC](https://meta.discourse.org/t/nginx-version-pinning/394488/10 "2026-01-30T10:12:33Z")

</div>


