KUSANAGI RoDのWordPressサイトヘルスチェックで致命的な問題

TOP Forums バグ報告と提案(Requests and Feedback) KUSANAGI RoDのWordPressサイトヘルスチェックで致命的な問題

KUSANAGI RoDのWordPressサイトヘルスチェックで致命的な問題

Viewing 3 reply threads
  • Author
    Posts
    • #868
      gontankun
      Participant

      KUSANAGI RoDでプロビジョンした後のWordPressでの問題です。
      WordPressのサイトヘルスチェックにて、解決方法が分からない致命的な問題が2件出ています。

      REST API でエラーが発生しました
      REST API は WordPress や他のアプリケーションがサーバーと通信する手段の1つです。たとえばブロックエディター画面は、投稿や固定ページの表示や保存に REST API を使用しています。
      REST API リクエストはエラーのために失敗しました。
      エラー: cURL error 7: Failed to connect to <FQDN> port 443 after 0 ms: Connection refused (http_request_failed)
      サイトでループバックリクエストが完了できませんでした
      パフォーマンス
      ループバックリクエストは予約イベントの実行に使用されます。またテーマやプラグインの組み込みエディターでは、コードの安定性の確認に使用されます。
      サイトへのループバックリクエストは失敗しました。現在、依存する機能は想定どおりに動作していません。
      エラー: cURL error 7: Failed to connect to <FQDN> port 443 after 0 ms: Connection refused (http_request_failed)

      対処方法を教えて頂けないでしょうか?

    • #870
      satoru
      Moderator

      これらの現象は、すべて KUSANGI RoDの内部SSLポートが8443で有ることに由来します。

      dockerでは、セキュリティの観点からroot権限でのプロセス実行は避けるべきとされています。KUSANAGI RoDもその基準に則り内部プロセスをユーザ権限で動作させています。80ポートや443ポートは、root権限でのみLISTENできるポートのため、RoDでは8080/8443 を使用し、外部にフォワードするときだけ80/443 に変更しています。

      このため、phpから443 ポートをLISTENしても応答がありません。

      1. REST APIですが、RoD外部からのREST API接続には問題ありません。php自体からのREST APIに問題が発生する可能性があります。しかし、ブロックエディタの挙動を確認すると、特に問題なく編集・投稿できています。
      2. ループバックリクエストは問題があり、予約イベントの実行に失敗することを確認しました。これについては、現時点での機能制限とさせてください。

      将来的には解決予定です。解決時期は未定です。

      • This reply was modified 3 months ago by satoru.
    • #872
      gontankun
      Participant

      satoru様、いつも迅速に対応いただきありがとうございます。

      KUSANAGI RoDでは80、443ポートをなぜ使っていないのか疑問に思っていましたが、
      セキュリティ上の問題であえて利用していない旨、理解しました。

      Let's Encryptとマルチサイトに対応するため、steveltn/https-portal - Docker Hub にて
      リバースプロキシを構成しているのですが、このcomposeファイルでのports設定が
      80:80と443:443になっているので、これも問題だということになりますね。。。

      KUSANAGI MAGAZINEの記事「KUSANAGI RoDの使い方(10)~高速Dockerの話(最終回)~」にて
      Certbotの実用化とPHPの高速化に対応予定とのことでしたが、状況はいかがでしょうか?
      公式にLet's Encrypt対応して頂けると大変助かります。

    • #873
      satoru
      Moderator

      PHPの高速化に関しては、PHP8.1 + WordPress 5.9 移行を使用することで解決済みです。

      Certbotの使用に関しては、どうしても証明書更新処理をcronなどで実行することになります。docker-compose内ではcronのような運用できないため、どうしてもホスト側での処理が必要になります。
      本番環境で docker-compose で必要かという部分が不透明だった(開発時点では、docker-compose の存続状況が危ぶまれていた)ため、その処理の実装を行っていませんでした。要望があるならば、作成してみようと思います。

Viewing 3 reply threads
  • You must be logged in to reply to this topic.

Next article

フォーラムについて