外部通信エラー

Web

WordPressでcURL errorが出たので修正してもらう

数日前からWordPressの管理画面に入ると、Query MonitorHttp API 呼び出しが赤くなっていることに気づく。最初は気に止めていなかったが、OGPGraphがローカルでは動くのに、本番サーバーで動かなくなることや、プラグインが更新できないので、それが原因だとわかった。症状はcURL error 6: getaddrinfo() thread failed to start (http_request_failed)と出ている。どうやら、外部と通信している機能に障害が出ているらしい。AIに聞いてみると4つの可能性が表示された。

サーバーのリソース枯渇: サーバー(またはPHP)のメモリ制限に達し、cURLがDNSの問い合わせプロセスを起動できていない。
サーバーの同時接続数・スレッド制限: ホスティングサーバーの制限により、システムがスレッドを生成できなかった。
DNS設定・ネットワークの一時的な不具合: 外部サーバー(WordPress.orgなど)との通信やDNSサーバーの解決で一時的なエラーが起きている。
ファイヤーウォールやセキュリティ設定: サーバー側のセキュリティ機能がcURL通信をブロックしている。

その対処法がピンと来る回答じゃなかった。そこで、Google検索で調べると、先にあったサーバーのリソース枯渇という表現が多く出てくる。そんな使っている訳じゃないし、おかしいなと思いつつ、Yahooのリアルタイム検索を行うと、自分とまさに同じ症状の人がいた。

「エックスサーバー cURL error」のX(旧Twitter)検索結果 - Yahoo!リアルタイム検索
「エックスサーバー cURL error」に関するX(旧Twitter)検索結果です。ログインやフォロー不要でX(旧Tw…

そのため、エックスサーバーに早速問い合わせすると、1日ほどで解消。原因はvscode関連のプロセスが過多っぽいとのこと。プロセスを強制終了してもらう。ありがたいことに、こちら側での対処方法も教えてくれた。

作業終了後はリモート接続を明示的に切断する

SSH経由のリモート開発ツールを使っている場合、ツールのウィンドウを閉じるだけではサーバー側のプロセスが残留することがあるらしい。なので、作業が終わったら、ツールの「リモート接続を閉じる」か「切断」を使って、接続を正しく終了させるべし。Remote SSHを使っているので、枠の左下に表示されている接続を切ることにした。

同時接続数を必要最小限にとどめる

複数の接続を同時に開いたままにすると、プロセスが累積しやすい。使用していない接続はその都度切断するのが吉とのこと。自分一人しか使っていないので、これは関係ないっぽい。

今後は開いたら切るを徹底しよう。

コメント