Nginx-Konfiguration für Discourse-Forum über Tor

Hallo zusammen,

ich möchte Discourse als Tor-Versteckten Dienst mit nginx konfigurieren. Hier ist die Konfiguration, die ich in nginx versuche (sie funktioniert nicht, „Server nicht gefunden"):

server {
    listen unix:/var/run/nginx-onion.sock;
    server_name prostadqmwc6no3n.onion;
    location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

In meiner tor.conf-Datei habe ich Folgendes:

HiddenServiceDir /var/lib/tor/hidden_service/
HiddenServicePort 80 unix:/var/run/nginx-onion.sock

Und in /var/lib/tor/hidden_service befinden sich die Dateien für den Hostnamen und den privaten Schlüssel. Tor läuft.

Discourse ist im Clearweb installiert und funktioniert, und /var/discourse/shared/standalone/nginx.http.sock existiert.

Falls nötig, bin ich gerne bereit, jemandem für eine Stunde oder so zu bezahlen, damit das läuft (ich bezweifle, dass es länger dauern wird, da ich wahrscheinlich einfach nur dumm bin).

Hast du dir Template for serving through an .onion address with Docker angesehen?

Ja, aber ehrlich gesagt verstehe ich es einfach nicht, und es scheint ein überkomplizierter Ansatz für das zu sein, was ich brauche: eine funktionierende nginx-Konfiguration.

Hast du eine Lösung gefunden?

Und wie hast du Discourse selbst in tocker für eine .onion-Adresse zum Laufen gebracht? (Ich möchte ein Forum, das nur über Tor erreichbar ist.)

Ja, hier ist die funktionierende Konfiguration. Das Problem war recht einfach: Ursprünglich habe ich versucht, einen Socket zum Bereitstellen der Site zu verwenden, was jedoch nicht funktionierte, sodass ich einen Port verwenden musste.

server {
    listen 801;
    server_name 127.0.0.1;
   location / {
        proxy_pass http://unix:/var/discourse/shared/standalone/nginx.http.sock:;
        proxy_set_header Host $http_host;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

Vielen Dank für deine schnelle Antwort!

Noch eine Frage: Wie lauten deine Server-Spezifikationen (und für welche Nutzerbasis)? / Hast du irgendwelche Änderungen für die Leistung über Tor vorgenommen?

Vielen Dank im Voraus!

Es ist eine 2-GB-DigitalOcean-VM mit 105 Benutzern. Wir haben keine Änderungen vorgenommen (außer einem Plugin, das es uns ermöglicht, sie gleichzeitig über Tor und Clearnet bereitzustellen).

Eine weitere Frage: Hast du Probleme damit, dass Benutzerbilder (wie Hintergrundkarten, Profilbanner usw.) sehr lange zum Laden brauchen (ich vermute, das liegt an Tor)? Sobald sie jedoch zwischengespeichert sind, werden sie problemlos angezeigt.

Ich bin mir nicht ganz sicher, wie Tor-Benutzeradressen funktionieren. Aber bei mir werden alle IP-Adressen der angemeldeten Benutzer als 127.0.0.1 angezeigt, was ich auch erwarte, da ich den x-forwarded-for-Header in nginx gesetzt habe.

Ich bin mir nicht sicher, ob Tor-Benutzer etwas Ähnliches wie eine IP-Adresse innerhalb des Tor-Netzwerks selbst haben und wie ich diese anzeigen lassen kann.

Möglicherweise müssen Sie set_real_ip_from verwenden.