Configurazione Nginx per forum Discourse su Tor

Ciao a tutti,

vorrei configurare Discourse come servizio nascosto Tor utilizzando nginx. Ecco la configurazione che sto provando in nginx (non funziona, “server non trovato”):

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

Nel mio file tor.conf ho questo:

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

In /var/lib/tor/hidden_service ho i file hostname e chiave privata. Tor è in esecuzione.

Discourse è installato e funzionante sul clearweb, e /var/discourse/shared/standalone/nginx.http.sock esiste.

Se necessario, sono felice di pagare qualcuno per un’ora o due di lavoro per far funzionare tutto (dubito che ci voglia più di così, perché probabilmente sto solo facendo una stupidaggine).

Hai dato un’occhiata a Template for serving through an .onion address with Docker?

Sì, ma onestamente non riesco a capirci nulla e sembra un approccio eccessivamente complicato per quello di cui ho bisogno, ovvero una configurazione nginx funzionante.

Hai trovato una soluzione?

Inoltre, come hai fatto a far funzionare Discourse stesso in tocker per un indirizzo .onion? (Voglio un forum disponibile solo tramite Tor)

Sì, ecco la configurazione funzionante. Il problema era piuttosto semplice: inizialmente ho provato a utilizzare un socket per servire il sito, ma non ha funzionato, quindi ho dovuto usare una porta.

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

Grazie per la rapida risposta!

Un’altra domanda: quali sono le specifiche del tuo server (e per quanti utenti?) / hai apportato modifiche per migliorare le prestazioni su Tor?

Grazie in anticipo!

È una VM Digital Ocean da 2 GB con 105 utenti. Non abbiamo apportato modifiche (tranne un plugin per consentirne la pubblicazione sia su Tor che sul clearweb contemporaneamente).

Un’altra domanda: hai riscontrato problemi con le immagini degli utenti (come la carta di sfondo, il banner del profilo, ecc.) che impiegano molto tempo per caricarsi (immagino sia dovuto a Tor)? Una volta memorizzate nella cache, però, vengono visualizzate correttamente.

Non sono esattamente sicuro di come funzionino gli indirizzi utente di Tor. Ma per me tutti gli IP degli utenti connessi vengono mostrati come 127.0.0.1, il che mi aspetto, ma ho impostato l’intestazione x-forwarded-for in nginx.

Non sono sicuro se gli utenti Tor abbiano qualcosa di simile a un IP all’interno della rete Tor stessa e come far sì che questo venga visualizzato.

Potrebbe essere necessario utilizzare set_real_ip_from