ページへ戻る

− Links

 印刷 

効果絶大! :thumb_up: の mod_xsendfile :: XOOPS マニア

UsersWiki:nao-pon/blog/2010-05-19


RSS of nao-pon/blog[5]
2010 5月 19 (水)
 

効果絶大! :thumb_up: の mod_xsendfile anchor.png[6]

Tag: Apache[7] PHP[8] 自宅サーバー[9]

先日、Apache を 1.3 から 2.2 にアップグレードしたので、前から気になっていた mod_xsendfile[10] を試してみました。

その効果は絶大! :thumb_up:

xpWiki[11] では、ページに添付されたファイルをはじめ、アイコン画像、JavaScript、CSS などが、PHP を通して出力されているのですが、これらのうち大きなサイズの添付ファイルがダウンロードされる場合に、PHPがI/O待ちになります。

通常はそんなに問題はないのですが、ボットが襲来した時など処理待ちプロセスが増え続けて、どうにもこうにもならなくなってしまうことが結構頻繁に起こっていました。

そんな時のために、monit で監視して異常な負荷になった場合に Apache を自動で再起動させていたのですが、mod_xsendfile に対応させてみたところ、高負荷になることは今のところ起こらなくなりました。 :ok:

ただ、mod_xsendfile は、"Content-Encording" ヘッダを除去してしまうので、gzip な CSS や JavaScript を出力することができません。

xpWiki[11] では、積極的に gzip での出力を行っているので、mod_xsendfile 0.11 をちょこっといじって、ヘッダに "X-Sendfile-Use-CE: Yes" を出力することで、"Content-Encording" ヘッダの除去を行わないようにしてみました。

apxs -cia mod_xsendfile.c

で普通にインストールできます。

あとは、http.conf や .htaccess[15] などで

<IfModule mod_xsendfile.c>
    XSendFile on
    XSendFilePath "/html/hogehoge"
    XSendFilePath "/trustpath/hogehoge"
</IfModule>

などとすればOK。(XSendFilePath は、読み込み可能にするパスをそれぞれ適切に設定する。)

mod_xsendfile 対応版の HypCommonFunc[16]xpWiki[11] は次のバージョンで。 :shy:



Last-modified: 2014-04-01 (火) 22:10:25 (JST) (3678d) by nao-pon