Могу ли я запретить загрузку по внешним ссылкам?

Оказывается, конфигурация 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
4 лайка