ホスト名としてIPアドレスを使用しているのに、アイコンのアドレスがlocalhostになるのはなぜですか

Discourse の開発バージョンを CentOS 7.7 にインストールしました(手順は「beginners-guide-to-install-discourse-for-development-using-docker/102009」に従いました)。
セットアップの手順は以下の通りです:

  1. discourse.git からソースを取得
  2. config/discourse_default.conf 内のメール送信者設定を変更
  3. ./d/boot-env --init
  4. ./d/unicorn

ホスト名は IP アドレス(例:10.201.0.115)に設定しています。
10.201.0.115:9292 で Discourse にアクセスできますが、すべての画像が表示されません。

Failed to load resource: net::ERR_CONNECTION_REFUSED from http://localhost:9292/images/discourse-logo-sketch.png
ただし、http://10.201.0.115:9292/images/discourse-logo-sketch.png を直接使用すれば PNG は取得できます。

また、返信アイコンも取得できません。
原因は、URL が localhost ではなく IP アドレス(10.201.0.115)である必要があることだと理解しています。

IP 関連で何を設定すればよいでしょうか?

ご支援いただける方、ありがとうございます。

@pfaffman さん、お手伝いいただけますか?
どうもありがとうございます!

私の解決策は、ポート3000でlocalhostを使用することです。それが私の推奨するところです。

ありがとうございます。
つまり、あなたのウェブサイトは他のユーザーには公開されていない、ということですね。
しかし、当社はDiscourseを社内で使用しており、社内のローカルネットワークからウェブサイトへのアクセスは可能です。
このような状況ではどのように対処すればよいでしょうか?

@pfaffman
つまり、app.yml で DISCOURSE_HOSTNAME=localhost を設定するだけでよいということでしょうか?
他に何か必要ですか?
正しい設定の例を示してもらえますか?

開発版をインストールされたようですが、これは Discourse のソースコードをいじるためのローカル環境用です。複数の人が実際にソフトウェアを利用するために使用するものではありません。

Discourse を利用したい場合は、Discourse 公式の標準インストールの手順に従ってください。

ありがとうございます!
しかし、私が提供したアドレスと同じ場所に discourse_docker.git を使用して、別のバージョンをインストールしました。
必要なのは、別のウェブサイトで使用されている80ポートを使用できないため、80の代わりに別のポートを使用することです。
ポートを28080に変更しましたが、Discourseのメインサイトにはアクセスできます。
しかし、新しい問題が発生しました。アイコンやPNGのアドレスが新しいポート28080を参照せず、IPアドレスだけでPNGを取得しようとしています。そのため、アクセスできません。
正しいPNGのURLは http://10.120.0.115:28080/some.png です。
間違ったPNGのURLは http://10.120.0.115/some.png です。
80の代わりに別のポートを使用する場合、どのようにすればよいでしょうか?
@Falco @pfaffman
ご回答をお待ちしております。

Discourse は標準の Web ポート 80/443 で実行する必要があります。これらのポートで直接 Discourse をListenさせることができない場合は、リバースプロキシを設定して、これらのポートからのトラフィックを Discourse にリダイレクトする必要があります。可能であれば、サブドメインを使用することをお勧めします。

ありがとうございます!
私もリバースプロキシの Nginx を使用しており、新しい問題が発生しています。

私は docker run を直接使用しています。
/usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=8 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET= -e DISCOURSE_DB_HOST=10.201.0.116 -e DISCOURSE_DB_PORT=5432 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_HOSTNAME=10.201.0.115 -e DISCOURSE_DEVELOPER_EMAILS=sheoixoet@gmail.com -e DISCOURSE_SMTP_ADDRESS=smtp.gmail.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=sheoixoet -e DISCOURSE_SMTP_PASSWORD=wpjedgfoiibrbffe -e DISCOURSE_SMTP_ENABLE_START_TLS=true -e DISCOURSE_SMTP_AUTHENTICATION=login -e DISCOURSE_SMTP_OPENSSL_VERIFY_MODE=none -e DISCOURSE_DB_NAME=discourse -e DISCOURSE_DB_USERNAME=postgres -e DISCOURSE_DB_PASSWORD=wetrwet@26 -h wetwrigp93-app --name app -t -p 28080:80 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:3a:0a:b4:ce:e9 --privileged local_discourse/app /sbin/boot

問題は以下の通りです:
ブラウザの状態が「blocked(csp)」となっています。
どうすればよいでしょうか?
よろしくお願いいたします。

@Falco @pfaffman
CSP の問題は解決しました。
しかし、新しい問題が発生しています。
デフォルトのポート 80 を 28080 に変更しましたが、PNG のアドレスが新しいポートを反映していません。
http://10.202.63.38/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
これは誤ったアドレスです。
正しいアドレスは以下の通りです:
http://10.202.63.38:28080/uploads/default/original/1X/3f10e1453ee931ddb6a9f5ab59d9e4578959fc33.jpeg
ウェブが新しいポートを認識させるにはどうすればよいでしょうか?
ありがとうございます!

喜んでお手伝いいたします。詳細は Redirecting… をご覧ください。

ただし、標準以外のポートを使用することはできないと、すでにお伝えいただいているはずです。

どうもありがとうございます!
おっしゃる通り、ポート 80 を使用する必要があります。それを実行しましょう。

繰り返しになりますが、ドメインが必要です。そのドメインが 10.202.63.38 を指している場合でも同様です。Jay が設定を手伝ってくれるはずです。おそらく、企業の IT 部門と話すことになるでしょう :slight_smile:

ありがとうございます! :grinning: