Problema na configuração do discourse com proxy reverso

Instalei o Wikijs (Docker compose) e o Discourse.

O Wikijs estava funcionando bem, o proxy reverso também estava funcionando.
Comecei a instalar o Discourse e ele estava com um problema. Pesquisei e descobri que pode ser algo relacionado à instalação do Docker quando você instala o Ubuntu pela primeira vez.

Então, parei o Docker do Wikijs para atualizar. Reinstalei tudo do repositório do Docker. Iniciei o Wikijs e não havia nenhum erro que eu pudesse ver.
Também iniciei o Discourse desta vez e ele passou por toda a sequência de inicialização. Então, tento acessar os sites. O Nginx está em outro servidor, então não mexi nos proxies reversos. Adivinhe? Não consigo acessá-los nem pelos nomes de domínio nem pelo ip_local:porta.

Estou completamente confuso sobre o que é, já que ambos dizem que estão em execução e o Wikijs estava me permitindo conectar antes. Eu estava tão perto. :') O syslog também não diz nada sobre esses dois.

Abaixo estão mais algumas informações.

Proxies reversos:

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

O Tunnel está instalado na mesma máquina que o Discourse e o Wikijs, mas duvido que seja esse o problema, já que o tenho há algum tempo sem problemas.
Ao visitar os fóruns, sou recebido com “Bad gateway”. E com o wiki, recebo um timeout 504 do Nginx.

Qualquer ajuda com isso seria muito apreciada. :slight_smile:
Obrigado, Blood.

1 curtida

Dentro do app.yml, devo alterar estas portas:

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

para algo como:

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

Sendo 8000 a porta que quero que a máquina principal do Nginx procure.
É a única coisa que tenho em mente e, bem, testei e não parece funcionar. (Reconstruí o aplicativo Discourse).

1 curtida

Veja Execute outros sites na mesma máquina que o Discourse
Você precisa remover os templates ssl e let’s encrypt. Seu nginx precisa fazer ssl e o discourse precisa apenas da porta 80 para o proxy se conectar.

1 curtida

Isso funcionaria para a mesma rede doméstica e não tanto para a mesma máquina, já que elas não estão realmente na mesma máquina? :slight_smile:

Estou assumindo que isso tem algo a ver com a forma como eu resolvo isso?
“Você não pode usar ./discourse-setup para configurar o Discourse se outro servidor estiver usando a porta 80 ou 443. Você precisará copiar e editar samples/standalone.yml com seu editor de texto preferido.”
Isso é do guia fornecido. Já que estou rodando Nginx naquele servidor diferente, que é.

1 curtida