その指摘はもっともです。単に削除しても同じ結果になります(ただし…以下参照)。
アプリケーションの境界は実際には Discourse や Rails ではなく、nginx 自体です。したがって、どのリモートプロキシを信頼するかという判断は、アプリケーションのエントリポイントである nginx で行われます。そして、nginx がその判断を Discourse に渡すことができます。
デフォルトでは、Rails は x-f-f の処理時にローカルアドレスのみを信頼するため、私たちが制御しやすい別の場所でその設定を行っています。
実際には、Rails は x-real-ip ヘッダーを見ようともしないことが判明しました… Rails が参照するヘッダーは以下の通りです。
forwardedclient-ipx-forwarded-for
これが何らかの理由でここから…
commit 21b562852885f883be43032e03c709241e8e6d4f (tag: v0.8.0)
Author: Robin Ward
Date: Tue Feb 5 14:16:51 2013 -0500
Discourse の初期リリース
diff --git a/config/nginx.sample.conf b/config/nginx.sample.conf
new file mode 100644
index 00000000..62fabf4a
--- /dev/null
+++ b/config/nginx.sample.conf
…
+ proxy_set_header X-Real-IP $remote_addr;
もう少し調査が必要ですが、現時点での答えは「動いているから」です。これが当初この状態になった理由かもしれません。
おそらく、何らかの gem がそれを使用しているのでしょうか?