Se encontró el problema de por qué exponer un puerto en /var/discourse/containers/web_only.yml de la siguiente manera no funcionaba.
expose:
# - "443:443"
# - "80:80"
- "8080:80" # https
Según Solve Nginx 13: Permission denied) while connecting to upstream - Programmer All , era SELinux el que estaba en juego y era necesario permitir que NGINX accediera a Discourse ejecutando o configurando SELinux en modo Permisivo.
setsebool -P httpd_can_network_connect 1
Ahora, lo interesante es que si la configuración de NGINX se establece en la ruta raíz, funciona bien, pero no cuando se establece en una ruta no raíz.
NGINX configurado para reenviar / a Discourse (funciona)
# Proxy requests to 443/discussions to Discourse listening on 127.0.0.1:8080
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
NGINX configurado para reenviar /discussions/ a Discourse (no funciona)
# Proxy requests to 443/discussions to Discourse listening on 127.0.0.1:8080
location /discussions/ {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $http_host;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
En este caso, estoy viendo lo siguiente… Mi instinto me dice que, aunque NGINX haya reenviado con éxito la ruta no raíz /discussions/ al docker de Discourse, el propio Discourse sigue cargando páginas de sí mismo y esperando que los activos estén en la ruta raíz /. ¿Supongo que es un requisito ejecutar Discourse solo en la ruta raíz? @pfaffman ¿has visto esto antes?
/var/log/nginx/example.com.error.log
2022/10/01 09:33:23 [error] 1954781#1954781: *1 open() "/etc/nginx/html/images/discourse-logo-sketch.png" failed (2: No such file or directory), client: 219.78.157.149, server: uat.example.com, request: "GET /images/discourse-logo-sketch.png HTTP/1.1", host: "uat.example.com", referrer: "https://uat.example.com/discussions/"
2022/10/01 09:33:25 [error] 1954781#1954781: *1 open() "/etc/nginx/html/service-worker.js" failed (2: No such file or directory), client: 219.78.157.149, server: uat.example.com, request: "GET /service-worker.js HTTP/1.1", host: "uat.example.com", referrer: "https://uat.example.com/service-worker.js"