Configuração do Nginx para o fórum Discourse sobre Tor

Olá a todos,

Gostaria de configurar o Discourse como um serviço oculto Tor usando o nginx. Aqui está a configuração que estou tentando no nginx (não funciona, “servidor não encontrado”):

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

No meu arquivo tor.conf, tenho o seguinte:

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

E em /var/lib/tor/hidden_service, tenho os arquivos de nome de host e chave privada. O Tor está em execução.

O Discourse está instalado e funcionando na web normal, e /var/discourse/shared/standalone/nginx.http.sock existe.

Se necessário, estou disposto a pagar alguém por uma hora ou mais de trabalho para fazer isso funcionar (duvido que leve mais do que isso, porque provavelmente estou apenas sendo burro).

Você já viu Template for serving through an .onion address with Docker?

Sim, mas, honestamente, não consigo entender nada disso e parece uma abordagem supercomplicada para o que preciso, que é apenas uma configuração de nginx funcional.

Você encontrou uma solução?

Além disso, como você conseguiu fazer o próprio Discourse funcionar no tocker para um endereço .onion? (Quero um fórum disponível apenas através do Tor)

Sim, aqui está a configuração funcional. O problema era bastante simples: originalmente, tentei usar um socket para servir o site, mas isso não funcionou, então precisei usar uma 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;
    }
}

Obrigado pela sua rápida resposta!

Outra pergunta: quais são as especificações do seu servidor (e para qual base de usuários)? Você fez alguma alteração para melhorar o desempenho via Tor?

Obrigado desde já!

É uma VM da Digital Ocean de 2 GB com 105 usuários. Não fizemos nenhuma modificação (exceto um plugin que nos permite atendê-la simultaneamente via Tor e clearweb).

Outra pergunta: você tem algum problema com imagens de usuários (como cartão de fundo, banner de perfil, etc.) demorando muito para carregar (acho que isso é por causa do Tor)? Depois de armazenadas em cache, porém, elas são exibidas normalmente.

Não tenho certeza exatamente como funcionam os endereços de usuários do Tor. Mas, para mim, todos os IPs dos usuários logados aparecem como 127.0.0.1, o que eu esperava, já que configurei o cabeçalho x-forwarded-for no nginx.

Não sei se os usuários do Tor têm algo semelhante a um IP na própria rede Tor e como fazer isso aparecer.

Pode ser necessário usar set_real_ip_from