Es stellt sich heraus, dass die Konfiguration, die Discourse für nginx verwendet, bereits eine Einstellung für Hotlinking enthält, die jedoch auskommentiert ist. Sie können also ein paar Ersetzungen in Ihre app.yml-Datei einfügen, um diese Zeilen zu aktivieren.
Bearbeiten Sie /var/discourse/containers/app.yml mit Ihrem bevorzugten Editor. Am Ende finden Sie einen Abschnitt „run", und am Ende dessen einen Befehl „exec", der „end of custom commands" ausgibt.
Fügen Sie vor diesem exec-Befehl folgende Zeilen hinzu:
- 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 /; }
Im ersten Ersetzungsteil sehen Sie die Zeile „to:" mit mysite.com *.mysite.com. Ersetzen Sie diese durch Ihre eigene Domain, z. B. discourse.org *.discourse.org. Der zweite Ersetzungsschritt geht davon aus, dass Besucher auf die Discourse-Startseite umgeleitet werden sollen.
Nachdem Sie die Änderungen gespeichert haben, führen Sie folgende Befehle aus, um Discourse mit der aktualisierten nginx-Konfiguration neu zu erstellen:
cd /var/discourse
./launcher rebuild app