Trovato il problema del perché l’esposizione di una porta in /var/discourse/containers/web_only.yml come segue non funzionava.
exponi:
# - "443:443"
# - "80:80"
- "8080:80" # https
Secondo Solve Nginx 13: Permission denied) while connecting to upstream - Programmer All era SELinux ad essere in gioco e bisognava permettere a NGINX di accedere a Discourse eseguendo o impostando SELinux in modalità Permissive.
setsebool -P httpd_can_network_connect 1
Ora, ciò che è interessante è che se la configurazione di NGINX è impostata sul percorso root funziona bene, ma non quando è impostata su un percorso non root.
NGINX impostato per inoltrare / a Discourse (funzionante)
# 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 impostato per inoltrare /discussions/ a Discourse (non funzionante)
# 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;
}
In questo caso vedo quanto segue… La mia sensazione è che anche se NGINX ha inoltrato con successo il percorso non root /discussions/ al docker di Discourse, Discourse stesso sta ancora caricando le pagine da sé e si aspetta che gli asset siano nel percorso root /. Immagino sia un requisito eseguire Discourse solo nel percorso root? @pfaffman hai già visto questo?
/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"