LoginSignup
2
1

More than 1 year has passed since last update.

Apacheの設定変更だけで激おもWebサーバーを再現する小ネタ

Posted at

CDNの挙動を確認するため、あえて応答の遅い、激おもWebサーバーを用意する必要があったので、設定変更だけで工夫したメモです。

Debian、Ubuntu系を例にします。まず、mod_ext_filterを有効にします。

a2enmod ext_filter 

ExtFilterDefineディレクティブで、出力の前に10秒スリープするPerl製フィルタを定義し、適用します。

/etc/000-default.conf
<VirtualHost *:80>
        # 中略

        ExtFilterDefine latency mode=output cmd="/usr/bin/perl -e 'sleep 10; print <>;'" \
          preservescontentlength

        <Location />
                SetOutputFilter latency
        </Location>
</VirtualHost>

これでWebサーバーのあらゆるレスポンスが10秒遅延し、激おもWebサーバーを再現できました。

別解

試せてはいないですが、こんなフィルタでもいいかもです。

ExtFilterDefine latency mode=output cmd="/bin/sh -c 'sleep 10; /bin/cat'" \
          preservescontentlength

mod_qos

あとで mod_qos もあったなと思い出しました。

本来はこちらの方がスマートですが、あまり使ったことがないのと、少ない手数で目的を達成できたのでよしとします。

公式サンプル

今回のヒントは公式ドキュメントにあったんですが、力技すぎてちょっとウケちゃいました。

ExtFilterDefine slowdown mode=output cmd=/bin/cat \
preservescontentlength

<Location />
    # core directive to cause the slowdown filter to
    # be run several times on output
    #
    SetOutputFilter slowdown;slowdown;slowdown
</Location>

最初に書かれた当時はこれで遅くできたのかな。

これでは秒単位の遅延は無理そうということで、Perlに書き換えたのでした。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1