【问题标题】:How do I set nginx configuration settings on a per app basis in Dokku?如何在 Dokku 中为每个应用程序设置 nginx 配置设置?
【发布时间】:2014-08-27 14:27:19
【问题描述】:

我需要为我在 Dokku Paas 上安装的单个应用增加 client_max_body_size 设置。我可以全局编辑 nginx 配置,但这会很脆弱,我希望此设置尽可能与应用程序配置一起使用。

我见过一些有助于重写 nginx.conf 文件的插件(例如https://github.com/mikexstudios/dokku-nginx-alt),但是当我只想更改一个设置时,这似乎有点过头了。

我还注意到了nginx-configure 插件挂钩 (https://github.com/progrium/dokku/pull/189),但我找不到有关如何从应用程序中使用它的明确说明(例如,我应该将挂钩脚本放在哪里?)。

在每个应用程序的基础上设置单个 nginx 配置参数的最简洁、最可维护和最便携的方法是什么?

【问题讨论】:

  • 还有什么问题?该指令可以在任何地方使用
  • 对不起 - 我不关注。什么指令?我的问题是如何在每个应用程序的基础上设置特定的 nginx 设置。
  • nginx 对您的应用一无所知。 Nginx 在 serverlocation 块上工作。在您有位置块的地方,将请求传递给您的应用程序。您可以在该块中添加 client_max_body_size 指令。
  • 你看到这是一个关于独孤的问题吗?我知道如何自己配置它,但这是在自动生成 nginx 配置的 PAAS 环境中运行的。不过感谢您的帮助!
  • 我发现这个插件在部署后使用perl修改nginx.conf:github.com/fabiooshiro/dokku-client-max-body-size/blob/master/…你可以有条件地修改每个应用程序的文件(例如当应用程序目录中的某个文件存在时)跨度>

标签: nginx dokku


【解决方案1】:

这个问题有点老了,但我在寻找同一个问题的解决方案时遇到了它。

默认情况下,dokku 站点安装在/home/dokku/{site-name}

在此文件夹中,每个应用程序都有一个主要的nginx 文件nginx.conf。每次部署时都会替换此文件,因此您不想更改此文件。

但是,您会看到这个主要的nginx.conf 文件在其中包含以下行 -

  include /home/dokku/{site-name}/nginx.conf.d/*.conf;

这将包括nginx.conf.d 文件夹中的所有 .conf 文件。

因此,您可以将一个名为 upload.conf(例如)的文件添加到仅包含 client_max_body_size 50M;nginx.conf.d 文件夹中,这样您就可以实现您想做的事情了。

创建目录和配置文件后,确保您将chown 分配给dokku 用户。

更多详情请参阅https://github.com/dokku/dokku/blob/master/docs/configuration/nginx.md

【讨论】:

  • 我使用 react-router,我需要覆盖“位置/{}”,看来我不能在 nginx 中这样做,有什么想法吗?
猜你喜欢
  • 2016-06-18
  • 2020-01-28
  • 2021-10-31
  • 2011-07-21
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2023-03-04
相关资源
最近更新 更多