Resulta que la configuración que Discourse utiliza para nginx ya incluye algo para hotlinking, aunque está comentado. Por lo tanto, lo que puedes hacer es agregar un par de reemplazos a tu archivo app.yml para descomentar esas líneas.
Edita /var/discourse/containers/app.yml con tu editor preferido. Al final encontrarás una sección run y, al final de esta, un exec que dice echo “end of custom commands”.
Antes de ese exec, agrega las siguientes líneas:
- 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 /; }
En la primera sección de reemplazo verás la línea “to:” con mysite.com *.mysite.com; sustitúyelas por tu propio nombre de dominio, por ejemplo discourse.org *.discourse.org. El segundo reemplazo asume que deseas que los visitantes sean redirigidos a la página de inicio de Discourse.
Después de guardar los cambios, ejecuta los siguientes comandos para reconstruir Discourse con la configuración actualizada de nginx.
cd /var/discourse
./launcher rebuild app