CSRFのことはよくわからないし、nginx(外部ウェブサーバーはApache 2.4です)もよくわかりませんが、ここで問題になっているのはCSRFだと確信しています。なぜなら、Discourseはログインなしでは正常に動作し、ログインに使用されるPOSTリクエストのみがここで失敗するからです。私の中心的なHAProxyの内部IPは10.10.10.21なので、web_onlyコンテナのdiscourse.confのymlに次のように記述しました。
set_real_ip_from 10.10.10.21/24;
デフォルトの127.0.0.1/24;も試しましたが、どちらもログイン時に同じ403エラーが発生します。