Configuration Nginx pour le forum Discourse via Tor

Bonjour à tous,

Je souhaite configurer Discourse comme un service caché Tor en utilisant nginx. Voici la configuration que j’essaie dans nginx (elle ne fonctionne pas, “serveur introuvable”) :

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;
    }
}

Dans mon fichier tor.conf, j’ai ceci :

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

Et dans /var/lib/tor/hidden_service, je trouve les fichiers hostname et private key. Tor est en cours d’exécution.

Discourse est installé et fonctionne sur le web clair, et /var/discourse/shared/standalone/nginx.http.sock existe.

Si nécessaire, je suis prêt à rémunérer quelqu’un pour une heure ou deux de travail afin de faire fonctionner cela (je doute que cela prenne plus que ça, car je suis probablement juste en train de faire une bêtise).

Avez-vous consulté Template for serving through an .onion address with Docker ?

Oui, mais honnêtement, je n’y comprends rien et cela semble être une approche trop compliquée pour ce dont j’ai besoin, à savoir une configuration nginx fonctionnelle.

Avez-vous trouvé une solution ?

D’ailleurs, comment avez-vous fait fonctionner Discourse lui-même dans tocker pour une adresse .onion ? (Je souhaite un forum accessible uniquement via Tor)

Oui, voici la configuration fonctionnelle. Le problème était assez simple : à l’origine, j’avais essayé d’utiliser un socket pour servir le site, mais cela ne fonctionnait pas, j’ai donc dû utiliser un port.

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;
    }
}

Merci pour votre réponse rapide !

Une autre question : quelles sont les spécifications de vos serveurs (et pour quelle base d’utilisateurs ?) / avez-vous apporté des modifications pour améliorer les performances sur Tor ?

Merci d’avance !

C’est une VM Digital Ocean de 2 Go avec 105 utilisateurs. Nous n’avons apporté aucune modification (sauf un plugin pour nous permettre de la servir à la fois sur Tor et sur le web clair).

Autre question : rencontrez-vous des problèmes de chargement lent des images utilisateur (comme les cartes d’arrière-plan, les bannières de profil, etc.) ? (Je suppose que cela est dû à Tor). Une fois mises en cache, elles s’affichent parfaitement.

Je ne suis pas tout à fait sûr de savoir comment fonctionnent les adresses des utilisateurs Tor. Mais pour moi, toutes les adresses IP des utilisateurs connectés s’affichent sous la forme 127.0.0.1, ce que je m’attendais à voir, car j’ai configuré l’en-tête x-forwarded-for dans nginx.

Je ne sais pas si les utilisateurs Tor disposent d’une adresse IP similaire au sein du réseau Tor lui-même, ni comment faire en sorte qu’elle s’affiche.

Il faudra peut-être utiliser set_real_ip_from