Гео-блокировка с помощью Nginx в контейнере?

Извините, это вопрос уровня 101. Но я знаю, как использовать Nginx для блокировки проблемных стран (так называемый геоблокинг) и остановки нежелательных агентов пользователя. Я мог бы использовать обратный прокси перед Discourse — я уже делал это раньше, но ничего не знаю о контейнерах. Честно говоря, я даже не понимаю, как работает Docker в принципе.

Так могу ли я использовать тот же Nginx, что и Discourse? Или, говоря проще: могу ли я сделать то же самое внутри контейнера, что и снаружи? Или все изменения будут перезаписаны при следующем обновлении?

Я стараюсь избегать использования дополнительного Nginx в качестве обратного прокси, потому что не люблю вопросы вроде «соответствует ли ваша настройка рекомендациям» :joy:

Чтобы сэкономить время, я начал здесь, а не с ИИ. У больших языковых моделей (LLM) тенденция быть точными на 80%, а недостающие 20% могут отнять очень много времени…

Я знаю, что этот вопрос не совсем подходит для этого раздела, но это точно не вопрос поддержки. Пожалуйста, не стесняйтесь переместить его в другое место.

Я бы создал шаблон, который вы включите в Docker-контейнер, создаваемый лаунчером.

Например, вот такой шаблон ограничения скорости, который вносит изменения в настройку nginx: discourse_docker/templates/web.ratelimited.template.yml at main · discourse/discourse_docker · GitHub

Вы включите свой собственный шаблон в список templates: конфигурации вашего контейнера в файле yml.

При следующей пересборке ваши изменения конфигурации nginx будут включены.

После быстрого поиска в Google кажется, что мне нужно использовать шаблоны, как было предложено, и/или плагин. В противном случае всё будет перезаписано.

Или мне нужно использовать обратный прокси вне контейнера.

Верно?

Да, но если вы хорошо разбираетесь в nginx, то создать шаблон (или добавить строки в ваш app.tml), который делает то, что вам нужно, скорее всего, не составит большого труда.