Jay がここで言いたかったのは、正しい IP アドレスに解決される任意の名前ではなく、設定されたホスト名(コンテナの .yml 定義の DISCOURSE_HOSTNAME)を使用する必要があるということです。
これは意図的なものであり、どこからでもパブリックインスタンスを簡単にリバースプロキシできないようにするため、また設定されたホスト名のみが受け入れられるようにするためです。
$ curl -I https://try.discourse.org/about.json
HTTP/2 200
server: nginx
date: Mon, 15 May 2023 16:25:05 GMT
content-type: application/json; charset=utf-8
[... ]
# 次のものは、try.discourse.org と同じ IP アドレスを指す
# try.somebogusreverseproxy.com で DNS レコードを作成し、
# 次に https://try.somebogusreverseproxy.com/about.json をリクエストするのと同等です。
$ curl -H 'Host: try.somebogusreverseproxy.com' -I https://try.discourse.org/about.json
HTTP/2 404
cache-control: no-cache
content-length: 1427
content-type: text/html
cdck-proxy-id: app-router-tiehunter02.sea1
cdck-proxy-id: app-balancer-tieinterceptor1b.sea1
逆に、次を試すと:
curl -H 'Host: YOUR_CONFIGURED_HOSTNAME' -I https://discourse_app/metrics
機能するはずですが、これはハックです。期待されるのは、Discourse が設定されたホスト名で透過的に到達できるように、必要に応じて DNS を設定することです。
curl -I https://YOUR_CONFIGURED_HOSTNAME/metrics
その方法は要件によって大きく異なりますが、最も簡単なオプションは、HTTP リクエストの発信元から /etc/hosts にエイリアスを設定することです。