Olá, equipe Discourse,
Estou executando um servidor nginx na minha máquina host e um container Discourse bastante padrão no Docker. Basicamente, tenho um pequeno número de pastas específicas (HTTP) servidas pelo nginx do host, e tudo o mais é encaminhado para o container Discourse via proxy_pass.
Pelo que entendi do problema, basta saber que meu arquivo de configuração do nginx do host define um local /xyz, que é tratado pelo nginx do host, e depois um local / é definido para ser proxy_pass’ado para o container Discourse.
Para o meu caso de uso, preciso postar links como publicações no Discourse apontando para my.domaiin.com/xyz/some.html, ou seja, links dentro do Discourse apontam para páginas servidas pelo nginx do host.
Isso funcionou até a última atualização do Discourse. Agora, ao clicar nos links, acabo na página “não foi possível encontrar…” do Discourse. Em contraste, copiar os destinos dos links e abri-los em uma nova aba funciona conforme o esperado.
Tenho bastante conhecimento sobre protocolos de baixo nível, mas quanto mais alto subo na pilha de protocolos, menos sei ![]()
Minha hipótese atual é que o nginx do Discourse mantém a conexão aberta (keepalive?), então o nginx do host perde a oportunidade de analisar o novo caminho da solicitação para selecionar o servidor correto. As solicitações da conexão são passadas para o container conforme estão, mantidas ativas. Então, a solicitação para o caminho /xyz é respondida pelo Discourse, que não conhece essa pasta.
Como devo abordar esse problema? Se não houver uma solução simples, já ajudaria obter algumas orientações; até mesmo uma boa descrição em relação a um conhecimento decente de protocolo HTTP pode ajudar.
Obrigado!