こんにちは。
DigitalOcean から VPS を購入し、Discourse ドロップレット用のワンクリックインストールを使用しました。
ドメイン名などを入力し、標準的なセットアップを完了しました。その後、メインドメインを VPS の IP アドレスに指し示し、Discourse をインストールした状態で、VPS の IP アドレスにアクセスしようとすると、毎回以下のエラーが表示されます。
このサイトに接続できません
(MY-VPS-IP) が接続を拒否しました。
以下の手順をお試しください:
- 接続を確認する
- プロキシとファイアウォールを確認する
ERR_CONNECTION_REFUSED
HTTP および HTTPS ポートも開放しており、sudo ufw status コマンドを実行しても開放されていることが確認できます。
ブラウザ側のローカル問題かもしれないと思いキャッシュをクリアしましたが、依然として解決しません。
ご助言やご支援をお願いできますでしょうか。アイデアをお持ちの方や、追加情報が必要な場合は、ぜひ下記に投稿してください。
pfaffman
(Jay Pfaffman)
2
Discourse 公式の標準インストール を使用する必要があります。
Discourse はホスト名を必要とし、IP アドレス単独では実行できません。
Cloudflare のようなリバースプロキシが設定されていないことを確認してください。
「いいね!」 1
ドメイン名を設定し、IP アドレスを正しく指し示しましたが、接続拒否のエラーが表示されます。24 時間以上待っても解消しません。
更新情報:
ポートが機能しているか確認するため Apache2 をインストールし、ポートを開けました。
Apache2 は IP アドレス上で正常に表示されましたが、Apache2 を削除した瞬間に、元の問題が再発しました。
これは Docker とポートに関する問題だと考えていますが、どのように修正すればよいか分かりません。
何か解決策はありますか?
参考までに、DigitalOcean のマーケットプレイスから Discourse をインストールしたため、DigitalOcean にも連絡しました。
Falco
(Falco)
5
「いいね!」 1
Falco
(Falco)
7
Droplet の IP アドレスとドメイン名は何ですか?
docker ps の出力は何ですか?
ドロプレットの IP: 104.248.170.134(ドメイン robloxfrance.com がこの IP を指すように設定されています。ただし、ドメインをこの IP に向けるように DNS レコードを更新したのは最近です。)
Docker ps の出力:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0296e70dba0b local_discourse/app “/sbin/boot” 6 分前 6 分前 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Falco
(Falco)
9
セットアップを実行した後に DNS を指し直した場合、証明書発行のステップで失敗し、nginx が起動しなくなる可能性があります。
./launcher rebuild app を試してみてください。
「いいね!」 1
./launcher rebuild app を試してみましたが、まだうまくいきません。
Falco
(Falco)
11
curl -v localhost の出力は何ですか?
* Trying 127.0.0.1:80...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 80 (#0)
> GET / HTTP/1.1
> Host: localhost
> User-Agent: curl/7.68.0
> Accept: */*
>
* Recv failure: Connection reset by peer
* Closing connection 0
curl: (56) Recv failure: Connection reset by peer
更新情報:
以下のコマンドを試しました:sudo systemctl restart docker.service
Webページをリフレッシュした瞬間(nginx Webサーバーが起動した)は一時的に機能しましたが、再度リフレッシュすると「接続が拒否されました」という状態に戻ってしまいました。
また、以下のコマンドも実行しました:docker run -it --rm hello-world
こちらはエラーなく正常に実行されました。
現時点では、Dockerの問題ではなくDiscourse側の問題ではないかと考えています。
ご協力をいただければ幸いです。
docker log コマンドを実行しました:./launcher logs app
その結果は以下の通りです:
お手伝いいただける方がいらっしゃれば、大変助かります。
Falco
(Falco)
15
今週はこのドメインに対してあまりにも多くの証明書をご注文いただいたようです。週に5枚までという制限があるため、1週間お待ちいただく必要があります。
現在、SSL をコメントアウトして再ビルドし、それでうまくいくかどうかを確認しています。
現在、VPS 上の Discourse インストールを再設定中であり、Let’s Encrypt のメールは使用していません。
更新:
インストールを再設定し、通常のインストールを実行しましたが、Let’s Encrypt のメールを追加しませんでした。その結果、接続を拒否するという最初の状況に戻ってしまいました。
pfaffman
(Jay Pfaffman)
18
Let’s Encrypt のレート制限に達したようです。Let’s Encrypt を使わない方法を考えるのは難しいため、おそらくまだ証明書をリクエストしているのでしょう(ただし、証明書が期限切れになる場合、メールでの警告は受け取れなくなります)。もし私の推測が正しければ、以下のいずれかの選択肢があります。
- 来週まで待つ(焦らなければ簡単です)
- 別のドメイン名を使用する(名前を愛している場合や DNS が苦手な場合を除き、簡単です)
- 複数のドメインで Let’s Encrypt を設定する に従う(初心者にはやや難しいです)
- 複数のドメインに関する問題の解決を誰かに依頼する、あるいは別の問題であることが判明する
「いいね!」 1