関数コラムリクエスト情報(2)index.htmlでアーカイブページを表示させるxmlrpc.phpへのアクセスについてちょっと考えたこの記事は最後に更新してから1年以上経過しています。前のことですが、こちらのサーバーを何度かダウンさせてしまったのですが、その原因はxmlrpc.phpへアクセスが集中したことによってサーバーが過負荷となってしまったというものでした。サーバー性能を上げることはできないため、xmlrpc.phpのアクセスを全部拒否するという暫定対応してしまいました。allxmlrpc.phpへのアクセス集中(DoS)は、これまでにも何度か盛り上がりを見せ、WordPressシステム本体でもいくつかの対策が行われました。こちらのサイトは最新版のWordPressを使用しているのですが、それでも今回このような事象に遭遇したことに軽い衝撃があったわけですが、サーバー運営側も何らかの対策が必要なのは確かでしょう。現状ですが、.htaccessに次の内容を記述しています。all</Files>これによりxmlrpc.phpへの全アクセスが無効となり、サーバーが過負荷になる事態は回避できました。WordPressのプラグインでPingbackを無効化するものもあるようですが、プラグインが動作する段階でそれなりにCPUを使用してしまうことを考えて、.htaccessでアクセスをブロックしました。xmlrpc.phへのアクセス集中がどの程度だったかというと、アクセスログを見た限りそれほど多くはなかったので、ある程度のサーバー性能があればもう少し持ちこたえたのかもしれません。抜本的な対策はサーバー性能アップなので、現状よりも高性能なサーバーへの引っ越しということになるでしょう。xmlrpc.php再開の是非これとは別にxmlrpc.phpを再開するかどうかも検討しなければなりません。xmlrpc.phpによって実現する機能について整理してみます。A.Pingbackによる相互リンクB.スマートフォンアプリなどを利用したサイト状況確認と更新C.その他のXML-RPC機能このサイトに限れば、Aは利用していましたが、BとCは利用していない。現状はPingbackを利用できないのが、最大の問題であり、解決したい課題ということになります。アクセス解析ですが、少し前からGoogleアナリティスクにまかせっきりになっており、とんとWebサーバー(ここではApache)のアクセスログには目を向けていなかったわけですが、xmlrpc.phpのアクセスログに頼ることになりそうです。httpd.conf(バーチャルホストの場合はhttpd-vhosts.conf)に次の内容を記述し、xmlrpc.phpのみのアクセスログを別ファイルとして保存するようにしてみます。env=xmlrpcApacheを再起動しテストとしてxmlrpc.phpにアクセスした際に保存されたxmlrpc.logの内容は次の通りです。698これでxmlrpc.phpのアクセス状況の確認はだいぶ楽になるでしょう。xmlrpc.phpのアクセスについては、例えば日本だけは許可するといった対応も考えられるのですが、正確な日本のIPアドレスを.htaccessに記述するとそれなりのボリュームになってしまうので、ちょっと躊躇しています。サーバーの引っ越しまでに具体的な対策をまとめたいところです。)サイドバーを登録する。)ダッシュボートページのURLを取得する。)月アーカイブのURLを取得する。)wp-contentディレクトリのURLを取得する。)サイトがマルチサイトか調べる。©12NetWordPress私的マニュアル主にjQueryのメモPHPExcelのノートWebの。