Acontece que a configuração que o Discourse usa para o nginx já inclui algo para hotlinking, embora esteja comentado. Então, o que você pode fazer é adicionar alguns comandos de substituição ao seu arquivo app.yml para descomentar essas linhas.
Edite /var/discourse/containers/app.yml com seu editor preferido. No final, você encontrará uma seção run e, no final dela, um comando exec que exibe “end of custom commands”.
Antes desse exec, adicione as seguintes linhas:
- 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 /; }
Na primeira seção de substituição, você verá a linha to: com mysite.com *.mysite.com; substitua esses valores pelo seu próprio domínio, por exemplo, discourse.org *.discourse.org. A segunda substituição assume que você deseja que os visitantes sejam redirecionados para a página inicial do Discourse.
Após salvar as alterações, execute os seguintes comandos para reconstruir o Discourse com a configuração atualizada do nginx.
cd /var/discourse
./launcher rebuild app