Cómo editar nginx/discourse.conf
Supongo que cualquier cambio en discourse.conf dentro del contenedor se revierte al reconstruir de todos modos.
Para mantener los cambios, debes agregarlos de alguna manera a la configuración de tu contenedor, por ejemplo, web_only.yml:
# [… ]
## Recuerda, esta es sintaxis YAML; solo puedes tener un bloque con un nombre
run:
- exec: echo "Comienzo de comandos personalizados"
# [… ]
- replace:
filename: /etc/nginx/conf.d/discourse.conf
from: $proxy_add_x_forwarded_for
to: $http_x_real_ip
global: true
# [… ]
Cómo depurar una instalación de Discourse en una subcarpeta
En una instalación de Discourse en una subcarpeta, una llamada a Discourse funciona de la siguiente manera:
example.org/forum → [Proxy externo para example.org] → /path-to-discourse/discourse/shared/web-only/nginx.http.sock → [Nginx en el contenedor web de Discourse]
Por lo tanto, si hay un error, primero debemos localizarlo:
- Proxy externo
- Nginx en el contenedor de Discourse
- El propio Discourse
Proxy externo
- Llama desde el navegador y comprueba el resultado.
- Comprueba los registros de errores del proxy externo.
Nginx en el contenedor de Discourse
- Conéctate por SSH a tu servidor web.
- Conéctate directamente al socket con
curl. - Depura la salida de
curly los registros deNginx en Discourse
Importante: usa la URL http y no https.
curl -I --unix-socket /path-to-discourse/discourse/shared/web-only/nginx.http.sock http://www.example.org/forum/
Si esto funciona, prueba una llamada 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