assets 文件夹内一个大的 Javascript 文件

其中一个文件 /assets/application-7c87db9088046beb643be94b61428105469e084e8d02f141c57adfaf14168c63.js 的大小接近 3.1 MB,导致 Nginx 反向代理的 error.log 中出现大量警告。

an upstream response is buffered to a temporary file /var/lib/nginx/proxy/2/77/0012036772 while reading upstream, client: XXXXXX

  • 是否有人知道这个巨大的 JavaScript 文件是用于什么目的?
  • 是否有办法减小该文件的大小?一种减少 Nginx 警告的方法是将缓冲区大小增加到 3.1 MB,但这是否比 Nginx 的默认配置大得太多?

首次加载 Discourse 站点时,完整的 JavaScript 应用会被发送到浏览器(随后会被缓存,因此后续页面加载会快得多)。那个 3MB 的文件就是它。

另外值得注意的是,按照官方安装指南操作,您将获得一个预配置的 nginx 反向代理,它使用 brotli 压缩来提供此文件,将其大小减少至 400KB。

感谢 @Falco。我们使用独立的 Web 容器和数据容器,并手动配置反向代理。看起来 discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub 中的指南是针对独立容器的。

对于预配置的 Nginx 反向代理设置,您是指使用 discourse/config/nginx.sample.conf at main · discourse/discourse · GitHub 中的配置吗?

该配置文件是我们在官方安装指南中使用的模板,但在安装过程中,安装脚本也会对其进行大量修改。

恐怕我们仅在遵循官方安装指南运行时才提供该配置文件。如果您偏离该指南,则必须小心,以免丢失我们支持的所有功能,例如 brotli、HTTP/2、IPv6 等。

@Falco 通过阅读 Discourse 论坛,可以感受到使用独立的 Web 和数据库容器是更受青睐或推荐的方式。如果能有官方指南介绍针对独立容器的 Nginx 手动配置或自动设置方案,那就太好了。

我们首选的安装方式是我们官方安装指南中记录的方式。不过,使用独立的 Web/数据容器不会影响 Web 容器内预配置的 nginx,其工作方式应保持一致,无需额外的反向代理。

寻求在托管多个 Discourse 论坛时的优化方案,使用架构:Nginx 反向代理 → 独立的 Web 容器和数据库容器。在此场景下,我假设官方安装中进行的性能优化需要在 Nginx 代理中手动完成。