使用 Nginx 对容器进行地理阻塞?

抱歉,这是一个非常基础的问题。但我知道如何使用 Nginx 来阻止有问题国家/地区的访问(即地理封锁)以及阻止不受欢迎的用户代理。我可以在 Discourse 前面使用反向代理,我以前做过,但我对容器一无所知。甚至我都不明白 Docker 到底是如何工作的。

那么,我可以使用 Discourse 使用的同一个 Nginx 吗?或者用更简单的方式来说:我可以在容器内做一些事情,而这些事情我可以在容器外完成吗?或者下次我升级时,所有更改都会被覆盖吗?

我想避免使用额外的 Nginx 作为反向代理,因为我不喜欢诸如“你的设置是否符合推荐?:joy:”之类的问题。

为了节省时间,我先在这里开始,而不是使用 AI。大型语言模型往往准确率是 80%,而缺失的 20% 会非常耗时……

我知道这个问题可能不适合在这里提问,但这绝对不是一个支持问题。请随意将其移至其他地方。

我将创建一个模板,并将其包含在由启动器创建的 Docker 容器中。

例如,就像这个速率限制模板一样,它会更改 Nginx 的设置:discourse_docker/templates/web.ratelimited.template.yml at main · discourse/discourse_docker · GitHub
您可以在容器 yml 配置的 templates: 列表中包含自己的模板。

下次重建时,您对 Nginx 配置所做的更改将包含在内。

1 个赞

经过快速搜索,看起来我需要使用模板,如建议的,和/或一个插件。否则一切都会被覆盖。

或者我必须在容器外使用反向代理。

对吗?

是的,但如果你熟悉 nginx,那么创建一个模板(或在你的 app.tml 中添加行)来实现你想要的功能可能并不难。