Servir Discourse de uma subpasta (prefixo de caminho) em vez de um subdomínio

Como editar nginx/discourse.conf

Presumo que quaisquer alterações em discourse.conf dentro do container sejam revertidas ao fazer um rebuild de qualquer maneira.

Para manter as alterações, você deve, de alguma forma, adicioná-las à configuração do seu container - por exemplo, web_only.yml:

# [… ]
## Lembre-se, esta é a sintaxe YAML - você só pode ter um bloco com um nome
run:
  - exec: echo "Início dos comandos personalizados"
# [… ]
  - replace:
      filename: /etc/nginx/conf.d/discourse.conf
      from: $proxy_add_x_forwarded_for
      to: $http_x_real_ip
      global: true
# [… ]

Como depurar uma instalação do Discourse em subpasta

Em uma instalação do Discourse em subpasta, uma chamada para o Discourse ocorre da seguinte forma:
example.org/forum[Proxy externo para example.org]/path-to-discourse/discourse/shared/web-only/nginx.http.sock[Nginx no container do Discourse]

Portanto, se houver um erro, devemos primeiro localizá-lo:

  • Proxy externo
  • Nginx no container do Discourse
  • O próprio Discourse

Proxy externo

  • Chame-o em um navegador e verifique o resultado.
  • Verifique os logs de erro do proxy externo.

Nginx no container do Discourse

  1. Conecte-se via SSH ao seu servidor web.
  2. Conecte-se diretamente ao socket via curl.
  3. Depure a saída do curl e os logs do Nginx no Discourse

Importante: use o URL http - e não https.

curl -I --unix-socket /path-to-discourse/discourse/shared/web-only/nginx.http.sock http://www.example.org/forum/

Se isso funcionar, tente uma chamada real como:

curl --unix-socket /path-to-discourse/discourse/shared/web-only/nginx.http.sock \
-H "user-agent: Chrome/88.0.4324.182" \
-H "Accept-Encoding: gzip" \
http://www.example.org/forum/t/test-thread/12345 --output test-encoded.html.gz
3 curtidas