Caricamento infinito dietro Cloudflare

Durante i test per bypassare il proxy Apache2 sull’host del container Discourse e disabilitare i reindirizzamenti HTTPS forzati su Cloudflare per testare le connessioni HTTP semplici tramite curl, ho finalmente trovato il colpevole su Cloudflare:

Non sono sicuro di cosa sia cambiato con il nostro passaggio al VPS e/o l’aggiornamento da Discourse 3.5.0.beta3 a 3.5.0.beta4 e/o coincidente su Discourse nello stesso periodo, ma sembra che qualcosa nei documenti HTML, CSS o JavaScript di Discourse causi il malfunzionamento della riscrittura HTTPS di Cloudflare per gli URL incorporati. Sembra che le richieste curl parziali e in sospeso non fossero realmente correlate, o forse lo sono. È strano che nella scheda di rete del browser si possa vedere il contenuto parziale del documento HTML, come se la funzionalità di riscrittura HTTPS lo facesse durante lo streaming attraverso il documento.

Forse qualcun altro ha un’istanza e un account Cloudflare per testare questo, sia che si tratti di un problema generale o correlato alla nostra particolare istanza/configurazione?

A proposito, per testare il bypass del proxy e anche HTTP, mantenendo attiva la connessione tramite proxy, la modifica manuale della configurazione Nginx all’interno del container in questo modo funziona perfettamente:

root@dietpi-discourse:/var/www/discourse# cat /etc/nginx/conf.d/outlets/server/10-http.conf
listen unix:/shared/nginx.http.sock;
set_real_ip_from unix:;
listen 8080;
listen [::]:8080;
listen 8443 ssl;
listen [::]:8443 ssl;
http2 on;

ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;

ssl_certificate /shared/fullchain.cer;
ssl_certificate_key /shared/dietpi.com.key;

ssl_session_tickets off;
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:1m;

È importante rimuovere i reindirizzamenti HTTPS e l’header HSTS, ovviamente, ed esporre le porte aggiunte.