Bueno, después de tantos intentos fallidos, finalmente descubrí cómo tener un inicio de sesión válido con force_https=true.
En el entorno de Docker, modifiqué /etc/nginx/conf.d/discourse.conf de la siguiente manera:
…
location @discourse {
limit_conn connperip 20;
limit_req zone=flood burst=12 nodelay;
limit_req zone=bot burst=100 nodelay;
proxy_set_header Host $http_host;
proxy_set_header X-Request-Start “t=${msec}”;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https; # $thescheme; <— Lo que modifiqué
proxy_pass http://discourse;
}
…
Y solo funciona en esta sección, al menos en mi entorno.
¡Ahora funciona genial!