Configuración de Nginx para el foro Discourse sobre Tor

Hello all,

I would like to configure Discourse to be a Tor hidden service using nginx. Here is the configuration that I am trying in nginx (it doesn’t work, “server not found”):

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 my tor.conf file I have this:

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

And in /var/lib/tor/hidden_service I have the hostname and private key files. Tor is running.

Discourse is installed and working on the clearweb, and /var/discourse/shared/standalone/nginx.http.sock exists.

If needed I’m happy to pay someone for an hour or so of work to get this running (I doubt it will take more than that, because I’m probably just being stupid).

2 Me gusta

Did you look at Template for serving through an .onion address with Docker?

1 me gusta

Yes but honestly I can’t make head or tail of it and it seems an over-complicated approach for what I need, which is just a working nginx configuration.

2 Me gusta

¿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;
    }
}
2 Me gusta

¡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).

1 me gusta

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

1 me gusta