Problemi nella configurazione di discourse con reverse proxy

Installato Wikijs (Docker compose) e Discourse.

Wikijs funzionava bene, anche il proxy inverso funzionava.
Ho iniziato a installare Discourse e ha avuto un intoppo. Così ho fatto ricerche e ho scoperto che potrebbe esserci qualcosa che non va nell’installazione di Docker quando si installa Ubuntu per la prima volta.

Quindi ho fermato il docker di Wikijs per aggiornare. Ho reinstallato tutto dal repository di Docker. Ho avviato Wikijs e non c’erano errori che potessi vedere.
Ho anche avviato Discourse questa volta e ha completato l’intera sequenza di avvio. Quindi provo ad accedere ai siti. Nginx è su un altro server, quindi non ho toccato i proxy inversi. Indovina un po’? Non riesco ad accedervi né dai nomi di dominio né dall’indirizzo ip locale:porta.

Sono completamente confuso su cosa possa essere, dato che entrambi dicono di essere in esecuzione e Wikijs mi permetteva di connettermi prima. Ero così vicino. :') Anche syslog non dice nulla su questi due.

Di seguito alcune informazioni aggiuntive.

Proxy inversi:

server {
        listen 80;
        listen [::]:80;

        root /var/www/website.co.uk/html;
        index index.html index.htm index.nginx-debian.html;

        server_name website.co.uk www.website.co.uk;

        location / {
                rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
                rewrite ^/(.*)/$ /$1 permanent;
                try_files $uri/index.html $uri.html $uri/ $uri =404;
        }

        location /css {
                alias /var/www/website.co.uk/html/css;
        }

        location /images {
                alias /var/www/website.co.uk/html/media/images;
        }

        location /videos {
                alias /var/www/website.co.uk/html/media/videos;
        }

        location /music {
                alias /var/www/website.co.uk/html/media/music;
        }

        location /fonts {
                alias /var/www/website.co.uk/html/media/fonts;
        }

        location /scripts {
                alias /var/www/website.co.uk/html/scripts;
        }
}

server {
        listen 80;
        server_name wiki.website.co.uk;

        #ssl_certificate           /etc/nginx/cert.crt;
        #ssl_certificate_key       /etc/nginx/cert.key;

        #ssl on;
        #ssl_session_cache  builtin:1000  shared:SSL:10m;
        #ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        #ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        #ssl_prefer_server_ciphers on;

        location / {
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;

                proxy_pass      http://internalip:port;
                proxy_read_timeout 90;

                proxy_redirect http://127.0.0.1 https://internalip:port;
        }
}
server {
        listen 80;
        server_name forums.website.co.uk;

        #ssl_certificate           /etc/nginx/cert.crt;
        #ssl_certificate_key       /etc/nginx/cert.key;

        #ssl on;
        #ssl_session_cache  builtin:1000  shared:SSL:10m;
        #ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
        #ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
        #ssl_prefer_server_ciphers on;

        location / {
                proxy_set_header        Host $host;
                proxy_set_header        X-Real-IP $remote_addr;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Forwarded-Proto $scheme;

                proxy_pass      http://internalip:port2;
                proxy_read_timeout 90;

                proxy_redirect http://127.0.0.1 https://internalip:port2;
        }
}

Tunnel è installato sulla stessa macchina di Discourse e Wikijs, ma dubito che sia questo il problema dato che lo uso da un po’ di tempo senza intoppi.
Visitando i forum vengo accolto da “Bad gateway”. E con il wiki ottengo un timeout 504 da Nginx.

Qualsiasi aiuto sarebbe molto apprezzato. :slight_smile:
Grazie, Blood.

1 Mi Piace

All’interno del file app.yml devo cambiare queste porte:

exponi:
  - "80:80"   # http
  - "443:443" # https

in qualcosa come:

exponi:
  - "8000:80"   # http
  - "8080:443" # https

8000 è la porta che voglio che la macchina Nginx principale cerchi.
È l’unica cosa che ho in mente e, beh, ho testato e non sembra funzionare. (Ricostruito l’app Discourse).

1 Mi Piace

Vedi Esegui altri siti Web sulla stessa macchina di Discourse

Devi rimuovere i template ssl e let’s encrypt. Il tuo nginx deve gestire l’ssl e discourse necessita solo della porta 80 per la connessione del proxy.

1 Mi Piace

Funzionerebbe per la stessa rete domestica e non tanto per la stessa macchina, dato che non sono effettivamente sulla stessa macchina? :slight_smile:

Presumo che questo abbia qualcosa a che fare con il modo in cui risolvo questo problema?
“Non è possibile utilizzare ./discourse-setup per configurare Discourse se un altro server sta utilizzando la porta 80 o 443. Sarà necessario copiare e modificare samples/standalone.yml con il tuo editor di testo preferito.”
Questo è tratto dalla guida fornita. Dato che sto eseguendo Nginx su quel server diverso, che è.

1 Mi Piace