WordPressのxmlrpc.phpを停止する 高負荷状態を回避

WordPressを使っているサイトのログに

[error] server reached MaxClients setting, consider raising the MaxClients setting

と表示が現れ、高負荷状態でサーバがダウン。エラーメッセージで検索すると、MaxClientsの値を上げれば良いと書かれていますが、負荷が高いのであればMaxClientsの値を上げても意味がありません。

色々ログを調べてみると、WordPressのxmlrpc.phpに対する攻撃が原因のようでした。

xmlrpc.phpはリモートで投稿する時に使う機能ですが、使う事がないため、全てのサイトでxmlrpc.phpを無効にしました。

ちなみに、xmlrpc.phpを削除してもアップデートの時に復活するようですので、.htaccessやNginxで無効に設定します。

■Apacheの場合

<Files xmlrpc.php>
Order allow,deny
Deny from all
</Files>

■Nginxの場合

location ~* /xmlrpc.php {
deny all;
}

これで、今回の高負荷状態は避けられました。

nginxの/var/lib/nginx/tmp/fastcgi/でPermission deniedになる

nginx+php-fpmでサーバを動かしてみましたが、表面上はエラーも出ずに動いているように見えます。しかしログを見ると以下のような出力がありました。

2013/06/27 22:28:13 [crit] 29202#0: *194780 open() "/var/lib/nginx/tmp/fastcgi/6/46/0000000466" failed (13: Permission denied) while reading upstream, client: ***.***.***.***, server: www.poitan.net, request: "GET /***.html HTTP/1.1", upstream: 
2013/06/27 22:28:35 [crit] 29202#0: *194981 open() "/var/lib/nginx/tmp/fastcgi/7/46/0000000467" failed (13: Permission denied) while reading upstream, client: ***.***.***.***, server: www.poitan.net, request: "GET / HTTP/1.1", upstream: 
2013/06/27 22:35:03 [crit] 29201#0: *197669 open() "/var/lib/nginx/tmp/fastcgi/8/46/0000000468" failed (13: Permission denied) while reading upstream, client: ***.***.***.***, server: www.poitan.net, request: "GET /***.html HTTP/1.1", upstream:

続きを読む

ポイ探のサーバメンテナンスを行います

ポイ探のサーバも若干重くなってきたよう気がするのと、突発的なアクセスにも対応できるように、Webサーバ(httpd)を入れ替える予定です。

以前、ワールドビジネスサテライトで取り上げられた時に負荷分散用に利用したnginxを採用する予定で、負荷分散時のnginxのパフォーマンスが良かったためにポイ探サーバに採用しようと考えました。負荷分散時のサーバと現在のサーバではスペックも違うため一概に比較することはできませんが、ポイ探サーバのload averageは10以上、nginxのload averageは1~2程度でした。

ウェブサーバへのアクセスもnginxのサーバには普通にアクセスすることが出来ましたが、ポイ探サーバはほぼアクセス出来ない状態でしたので、パフォーマンスには期待ができると思います。

もし、思ったようなパフォーマンスが出ない場合や、何らかの不具合が出た場合は、現在のhttpdに戻しますが。

続きを読む