Problème trouvé quant à l’exposition d’un port dans /var/discourse/containers/web_only.yml comme suit qui ne fonctionnait pas.
expose:
# - "443:443"
# - "80:80"
- "8080:80" # https
Selon Solve Nginx 13: Permission denied) while connecting to upstream - Programmer All , c’était SELinux qui était en cause et il fallait autoriser NGINX à accéder à Discourse en exécutant ou en réglant SELinux en mode permissif.
setsebool -P httpd_can_network_connect 1
Ce qui est intéressant, c’est que si la configuration de NGINX est définie sur le chemin racine, cela fonctionne bien, mais pas lorsqu’elle est définie sur un chemin non racine.
NGINX configuré pour rediriger / vers Discourse (fonctionne)
# 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 configuré pour rediriger /discussions/ vers Discourse (ne fonctionne pas)
# 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;
}
Dans ce cas, je vois ce qui suit… Mon intuition est que même si NGINX a correctement redirigé le chemin non racine /discussions/ vers le docker Discourse, Discourse lui-même charge toujours des pages depuis lui-même et s’attend à ce que les ressources se trouvent au chemin racine /. Est-ce une exigence de faire fonctionner Discourse uniquement au chemin racine ? @pfaffman avez-vous déjà vu cela ?
/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"