Оказывается, конфигурация Discourse для nginx уже включает настройки для защиты от хотлинкинга, хотя они и закомментированы. Поэтому вы можете добавить несколько замен в файл app.yml, чтобы раскомментировать эти строки.
Откройте файл /var/discourse/containers/app.yml в предпочитаемом редакторе. В конце файла вы найдете секцию run, а в её конце — команду exec с выводом “end of custom commands”.
Перед этой командой exec добавьте следующие строки:
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "#valid_referers none blocked mysite.com *.mysite.com;"
to: valid_referers none blocked mysite.com *.mysite.com;
- replace:
filename: "/etc/nginx/conf.d/discourse.conf"
from: "#if ($invalid_referer) { return 403; }"
to: if ($invalid_referer) { return 307 /; }
В первой секции replace в строке “to:” замените mysite.com *.mysite.com на ваш домен, например discourse.org *.discourse.org. Вторая замена предполагает, что вы хотите перенаправлять посетителей на главную страницу Discourse.
После сохранения изменений выполните следующие команды для пересборки Discourse с обновленной конфигурацией nginx:
cd /var/discourse
./launcher rebuild app