Ich verfolge eine nicht unterstützte Docker-Installation.
Das bedeutet, dass Ember CLI in einem eigenen Container mit einem gemeinsam genutzten Volume über einen anderen Port ausgeführt und wie erwartet an den Rails-Server weitergeleitet wird.
Leider erhalte ich für alle .css-Assets “Bad Gateway 502” von curl und vom Browser, wenn ich vollständig über HTTPS und den Nginx-Reverse-Proxy gehe.
Es scheint, dass Ember CLI einen Content-Length-Header hinzufügt, obwohl bereits transfer-encoding: chunked vom Rails-Server hinzugefügt wurde.
(Ich kann die Antwort von Rails und Ember überprüfen, indem ich verschiedene Ports anspreche)
Dies verstößt meines Erachtens nicht gegen den HTTP 1.1-Protokollstandard (er soll ignoriert werden):
“Wenn eine Nachricht mit sowohl einem Transfer-Encoding-Headerfeld als auch einem Content-Length-Headerfeld empfangen wird, muss letzteres ignoriert werden.”
… aber es veranlasst Nginx dazu, zu zögern und eine 502 anzukündigen und das Asset nicht zu servieren, daher ist dies unerheblich.
Ich kann eine CSS-Datei mit curl direkt an den Container auf localhost durchsuchen, aber auf Nginx-Ebene ist es NICHT glücklich:
upstream sent "Content-Length" and "Transfer-Encoding" headers at the same time while reading response header from upstream
Hat jemand Ideen, wie man Ember CLI davon abhalten kann, dies zu tun, oder eine Problemumgehung? Ich bin überrascht, dass dies bei der Standardinstallation kein Problem ist? (da die Kommunikationskette sehr ähnlich sein sollte).
Die Discourse-Version ist 2.8.9
Header im Dock (kleine Schnitte zur Kürze):
< content-transfer-encoding: binary
< content-type: text/css; charset=utf-8
< referrer-policy: strict-origin-when-cross-origin
< set-cookie: __profilin=p%3Dt; path=/forum; HttpOnly; SameSite=Lax
< **transfer-encoding: chunked**
< Vary: Accept, Accept-Encoding
< x-content-type-options: nosniff
< x-discourse-route: stylesheets/show
< x-download-options: noopen
< x-frame-options: SAMEORIGIN
< x-permitted-cross-domain-policies: none
< x-xss-protection: 0
< content-encoding: null
< **Content-Length: 3055**