Configuración de Nginx para el foro Discourse sobre Tor

Hola a todos,

Me gustaría configurar Discourse como un servicio oculto de Tor usando nginx. Esta es la configuración que estoy intentando en nginx (no funciona, “servidor no 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;
    }
}

En mi archivo tor.conf tengo esto:

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

Y en /var/lib/tor/hidden_service tengo los archivos de nombre de host y clave privada. Tor está en ejecución.

Discourse está instalado y funcionando en la web normal, y existe /var/discourse/shared/standalone/nginx.http.sock.

Si es necesario, estoy dispuesto a pagarle a alguien por una hora o así de trabajo para poner esto en marcha (dudo que tome más que eso, porque probablemente solo esté siendo tonto).

¿Ya viste Template for serving through an .onion address with Docker?

Sí, pero honestamente no entiendo nada y parece un enfoque demasiado complicado para lo que necesito, que es simplemente una configuración de nginx que funcione.

¿Encontraste una solución?

Además, ¿cómo lograste poner Discourse en funcionamiento en tocker para una dirección .onion? (Quiero un foro disponible solo a través de Tor)

Sí, aquí está la configuración que funciona. El problema era bastante sencillo: originalmente intenté usar un socket para servir el sitio, pero no funcionó, así que tuve que usar un puerto.

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

¡Gracias por tu rápida respuesta!

Otra pregunta: ¿cuáles son las especificaciones de tu servidor (y para qué base de usuarios)? ¿Has realizado algún cambio para mejorar el rendimiento sobre Tor?

¡Gracias de antemano!

Es una VM de 2 GB de Digital Ocean con 105 usuarios. No hicimos ninguna modificación (excepto un plugin que nos permite servirla simultáneamente a través de Tor y la web clara).

Otra pregunta: ¿tienes algún problema con que las imágenes de los usuarios (como la tarjeta de fondo, el banner del perfil, etc.) tardan mucho en cargar (supongo que esto se debe a Tor)? Una vez que se almacenan en caché, se muestran correctamente.

No estoy exactamente seguro de cómo funcionan las direcciones de usuario de Tor. Pero, en mi caso, todas las IPs de los usuarios registrados se muestran como 127.0.0.1, lo cual esperaba, ya que he configurado la cabecera x-forwarded-for en nginx.

No sé si los usuarios de Tor tienen algo similar a una IP dentro de la propia red Tor y cómo hacer que esto se muestre.

Puede que necesites usar set_real_ip_from