Apacheのモジュールを試す

サーバー運用がかなり厳しいので寄付をしてくれる人がいたらこちら
メインPCもボロボロになってきたので、ついにほしいものリスト公開

Apache2.4に適当に対応させたパッチ置き場はこちら
とりあえずコンパイルと起動までは確認してあります。(mod_uploaderはうpと削除まで確認)
mod_perlは適当パッチなので、Fedoraのrpmに入ってるパッチ使った方が幸せになれるかもしれません。

自己責任で使って下しあ

ということで、いろいろと遊んでみますか

mod_uploader

http://acapulco.dyndns.org/mod_uploader/

最強?とうわさのあぷろだを試してみます。
なぜかサムネイルが動かなかったのが原因判明したので覚書です
サムネイルにはImageMagicを使用しますが、
ソースから入ってるとなにやら足りないものがあるらしく、
Apacheが起動時にエラーをはいて起動しなくなります。
ということで/usr/local/libにlibWand.so.10がある場合は
ソースをuninstallした後に削除しましょう?

Fedora18にしたらコンパイルでこけるわコンパイルできるようになったらなんかライブラリ?がおかしいわで
起動しなくなったので、どこかのエロい人が直してくれるまで放置決定でござる。

必要環境

公式HPより抜粋
httpdはrpmではなく今回はソースでやってますので無視します。

  1. gcc-c++
  2. make
  3. libtool
  4. httpd-devel
  5. ImageMagick-c++-devel
  6. freetype-devel
  7. fontconfig-devel

インストール

cd /usr/local/src wget http://osdn.dl.sourceforge.jp/mod-uploader/37519/mod_uploader-3.1.1.tgz tar zxvf mod_uploader-3.1.1.tgz cd mod_uploader-3.1.1 ./configure --enable-thumbnail #/usr/local/apache2にapacheがインストールされてれば自動的に必要なパスを検索してくれます #それ以外の場合は--with-apxs2=/path/to/bin/apxs2 --with-apctl2=/path/to/bin/apachectlとか指定しましょう。 make make -f GNUmakefile.apache install

これで必要なモジュールがインストールされました
次に設定です。

/usr/local/apache2/conf/httpd.conf
以下を追加+""で囲まれたパスは適宜変更

AddDefaultCharset EUC-JP RewriteEngine Off SetHandler uploader #UTF-8なOSだと日付が文字化けするので英語にしておきます SetEnv LC_LANG en_US UploaderBaseUrl "http://www.example.org/up" UploaderDataDirectory "/usr/local/apache2/htdocs/test/data" UploaderFileDirectory "/usr/local/apache2/htdocs/test/file" UploaderThumbDirectory "/usr/local/apache2/htdocs/test/thumb" UploaderTempDirectory "/usr/local/apache2/htdocs/test/temp" UploaderTotalFileSizeLimit 10485760 UploaderTotalFileNumberLimit 200 UploaderFileSizeLimit 1048576 UploaderPerPageItemNumber 30 UploaderIndexViewTemplate "/usr/local/apache2/htdocs/tmpl/index.htm" UploaderInfoViewTemplate "/usr/local/apache2/htdocs/tmpl/info.htm" UploaderProgressViewTemplate "/usr/local/apache2/htdocs/tmpl/progress.htm" UploaderDownloadViewTemplate "/usr/local/apache2/htdocs/tmpl/download.htm" UploaderThumbnailViewTemplate "/usr/local/apache2/htdocs/tmpl/thumbnail.htm" UploaderAdminViewTemplate "/usr/local/apache2/htdocs/tmpl/admin.htm" UploaderErrorViewTemplate "/usr/local/apache2/htdocs/tmpl/error.htm" Order Deny,Allow Deny From All Allow From 127.0.0.1 Alias /up_img "/usr/local/apache2/htdocs/img" Alias /up_css "/usr/local/apache2/htdocs/css" Alias /up_js "/usr/local/apache2/htdocs/js

テンプレートファイルとかをコピー

cd /usr/local/src/mod_uploader-3.1.1 cp -r css img js tmpl /usr/local/apache2/htdocs cd /usr/local/apache2/htdocs mkdir test cd test mkdir data file thumb temp cd /usr/local/apache/htdocs chown -R apache. test css img js tmpl chmod 777 test/*

後はapacheを再起動してエラーが出ていなければ
http://www.example.org/up/へアクセスするとあぷろだのページが表示されます。

テンプレートは編集可能ですが、編集後httpdのリロードが必要です。

mod_evasive

うちのような貧弱なサイトにはあまり関係ないですが、
ダウンロードサイトとかで自動ツールによる大量アクセスを防いだり
DoSアタックを防ぐためにこのモジュールをつかいます。

旧(つながらない)http://www.zdziarski.com/projects/mod_evasive/

http://www.zdziarski.com/blog/?page_id=442

インストール

cd /usr/local/src wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz tar zxvf mod_evasive_1.10.1.tar.gz cd mod_evasive /usr/local/apache2/bin/apxs -cia mod_evasive20.c

これでインストールは完了で設定はこんな感じで

/usr/local/apache2/conf/httpd.conf

DOSHashTableSize 3097 DOSPageCount 2 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10

説明

  • DOSPageCount ページのアクセス回数でDOSPageIntervalと組み合わせる
  • DOSSiteCount サイトへのリクエスト回数でDOSSiteIntervalと組み合わせる
  • DOSPageInterval この秒数以内でDOSPageCount回数以上アクセスがあるとだめ
  • DOSSiteInterval この秒数以内でDOSSiteCount回数以上リクエストがあるとだめ

上の例では1秒間に2回以上の同一ページへのアクセスがあるか
50回以上のリクエストが送られてきたときに
10秒間アクセスを拒否する動作をします。
オプションで通知とかができたりするそうです。

DOSLogDir "/usr/local/apache2/logs/mod_evasive" DOSEmailNotify webmaster@example.com DOSSystemCommand "su - someuser -c '/sbin/... %s ...'" DOSWhitelist 127.0.0.*

ホワイトリストはワイルドカードで指定が可能だそうです。

mod_bw

bwとはBandWidthの頭文字で帯域制御を可能にするモジュールです。
うちのような貧弱な(ry

http://ivn.cl/

インストール

cd /usr/local/src wget http://ivn.cl/files/source/mod_bw-0.92.tgz mkdir mod_bw cd mod_bw tar zxvf ../mod_bw-0.92.tgz #.htaccessでの制御はできないようなのでパッチを #あてると使えるようになります(使うなら自己責任で使ってください) #0.8用 wget http://ftp.momo-i.org/pub/www/modules/mod_bw_dothtaccess.patch #patch -p0 < mod_bw_dothtaccess.patch #0.92用 wget http://ftp.momo-i.org/pub/www/modules/mod_bw_dothtaccess-0.92.patch.gz #gzip -dc mod_bw_dothtaccess-0.92.patch.gz | patch -p1 /usr/local/apache2/bin/apxs -cia mod_bw.c

これでインストールが終わったので以下のように設定をします。

BandWidthModule On ForceBandWidthModule On LargeFileLimit .wmv 1000 1200 BandWidth 192.168.0.0/255.255.255.0 8000 BandWidth 192.168.1.0/24 8000 BandWidth crawl.example.com 8000 BandWidth "u:^Mozilla/5(.*)" 500 BandWidth all 10240

IP/Subnetとかドメインで設定できるようです。
この場合は/path/to/dir配下のwmvの拡張子で1000KB以上のファイルは1200B/s
また指定したアドレスに対しては8000KB/sに制限
指定したユーザエージェントでは500KB/sに制限
それ以外のファイルは10240B/sに帯域制限します。
ここではbit/secでは無くByte/secになるので注意してください。

mod_layout

これは1.3・2.0・2.2の各バージョン用に
ダウンロードできるようになってるようです。
各ページに一律のヘッダやフッタを挿入できるらしい?

インストール

cd /usr/local/src wget http://download.tangent.org/mod_layout-5.1.tar.gz tar zxvf mod_layout-5.1.tar.gz cd mod_layout-5.1 vi Makefile #以下を適宜修正 ################ APXS=/usr/local/apache2/bin/apxs APACHECTL=/usr/local/apache2/bin/apachectl ################ make make install

内容がこれもあまりわかっていない?ので
とりあえず後回しで

Layout LayoutHeader LayoutFooter LayoutAppend LayoutAppendHeader LayoutAppendFooter LayoutIgnoreURI LayoutIgnoreHeaderURI LayoutIgnoreHTTPHeaderURI LayoutIgnoreFooterURI LayoutComment LayoutDisplayOriginal LayoutTimeFormat LayoutHTTPHeader LayoutIgnoreTag LayoutIgnoreTagFooter LayoutIgnoreTagHeader LayoutPostAsync LayoutBeginTag LayoutEndTag LayoutReplaceTags LayoutNotes

mod_qos

QoSが出来るモジュールだそうです。
公式を見る限りかなり柔軟な設定が出来るようなので遊んでみます。

http://mod-qos.sourceforge.net/

公式ではhttpdのソースにコピーしてコンパイルしろって書いてありますが
個別にコンパイル可能なので、それでやります。

mod_parpってのを使うと応答ボディデータの制限とフィルタリングが可能だそうです?
Request body data limitation and filtering

http://parp.sourceforge.net/

マニュアル(永遠に準備中)

cd /usr/local/src/ wget http://jaist.dl.sourceforge.net/sourceforge/mod-qos/mod_qos-9.57.tar.gz tar zxvf mod_qos-9.57.tar.gz cd mod_qos-9.57/apache2 /usr/local/apache2/bin/apxs -cia mod_qos.c #8.xからmod_qos_controlはなくなったようです /usr/local/apache2/bin/apxs -cia mod_qos_control.c cd ../tools ./configure make make install

9.57では./configureが利用可能なので、以下は不要

mkdir /usr/local/apache/conf/qsfilter vi qsfilter/Makefile 以下をApacheのソースディレクトリに修正 --------------例-------------- top_srcdir = /usr/local/src/httpd-2.2.15 top_builddir = /usr/local/src/httpd-2.2.15 srcdir = /usr/local/src/httpd-2.2.15/support builddir = /usr/local/src/httpd-2.2.15/support VPATH = /usr/local/src/httpd-2.2.15/support ------------------------------ make cp qsfilter2 /usr/local/bin

Fedora12ではOpensslが1.0.0になっているのでqsfilter2のmakeでエラーがでます。
よく分かってないんですが、グーグル先生に聞いてみたところ
1550行目あたりのSTACKを_STACKにしたらコンパイルが通るようになりました。
他に直し方があれば教えてください?

ついでにmod_parpも

cd /usr/local/src
wget http://jaist.dl.sourceforge.net/sourceforge/parp/mod_parp-0.9-src.tar.gz
tar zxvf mod_parp-0.9-src.tar.gz
cd mod_parp-0.9/apache2
/usr/local/apache2/bin/apxs -cia mod_parp.c

設定はいつか。。。('A`)

mod_cband

このモジュールも帯域制御系の1種で、主にホスティングサーバ向けの物と言っても良いかと。

公式: http://codee.pl/cband.html

mod_authn_otp

これはワンタイムパスワード認証を提供してくれるモジュールだそうです。

公式: http://code.google.com/p/mod-authn-otp/

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
CAPTCHA
また変更しました
Fill in the blank.