メイン

apache アーカイブ

2008年1月20日

地味なApacheチューニング

httpd.confを弄ってみた。

FileETag None
ExpiresActive On
ExpiresDefault "access plus 4 weeks"
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
DeflateCompressionLevel 9
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/rdf+xml application/xml application/x-javascript

mod_deflateとmod_expiresとHTTPヘッダへのETag付与。
CPUもそれほど喰わず、いい感じ。

ちなみに、mod_deflateによる圧縮状況は、ログとかHTTPヘッダでも確認できますが、こんな感じで確認できるサイトが分かりやすくて宜しいかと。

圧縮転送に対応していないURLを入力すると、"もしgzip転送したら...."なデータを表示してくれます。

2008年2月20日

Apache2.2 WebDAV+mod_encoding

これまで8GBのVPSでも、Web関連のキャッシュ&ログに気をつけている限りは容量を使い切れなかったのに、今のサービスは50GB。

というわけで、総容量が10GBを超えそうな猫写真&猫動画のバックアップ領域を嫁に提供するべくWebDAVの設定。

GETで取得したquery文字列に含まれる日本語が化ける問題に対応するパッチというのも当ててみた。

CentOS5の場合、標準でWebDAVモジュールは入っているので、mod_encodingでの日本語対応と、httpd.confでの設定のみでOK.

先ずは材料として、WebDAV Resources JPのダウンロードページから、


と、先ほどのGETで取得したquery文字列に含まれる日本語が化ける問題に対応するパッチ(以下、mod_encoding-20020611a-safequery.patch
)
を用意。

■インストール


$ gunzip -dc mod_encoding-20021209.tar.gz | tar xvf -
$ cd mod_encoding-20021209
$ ./configure --with-apxs=/usr/sbin/apxs
$ cp ../mod_encoding.c.apache2.20040616 mod_encoding.c
$ patch -p0 < ../mod_encoding-20020611a-safequery.patch
$ cd lib

$ ./configure
# make
# make install
# cd ..
# make
# gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
# cp mod_encoding.so /etc/httpd/modules/
# ln -s /usr/local/lib/libiconv_hook.so /usr/lib/httpd/libiconv_hook.so.1

■設定

# vi /etc/httpd.conf

<IfModule mod_encoding.c>
  EncodingEngine        on
  SetServerEncoding     UTF-8
  DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
  AddClientEncoding "Microsoft .* DAV 1.1" ASCII CP932 UTF-8
  AddClientEncoding "Microsoft .* DAV" UTF-8 CP932
  AddClientEncoding "(Microsoft .* DAV $)" UTF-8 CP932
  AddClientEncoding "(Microsoft .* DAV 1.1)" CP932 UTF-8
  AddClientEncoding "Microsoft-WebDAV*" UTF-8 CP932
  AddClientEncoding "RMA/*" CP932
  AddClientEncoding "xdwin9x/" CP932
  AddClientEncoding "cadaver/" UTF-8 EUCJP-MS
  AddClientEncoding "Mozilla/" EUCJP-MS
  NormalizeUsername on
</IfModule>
Alias /alias_directry_name /real_directry_in_full_path
<Location /alias_directry_name>
  AddDefaultCharset UTF-8
  Options +Indexes
  IndexOptions FancyIndexing FoldersFirst TrackModified
  DAV on
  AuthName "WebDAV Folder"
  AuthType Basic
  AuthUserFile /somewhere/.davpasswd
  Require user some_username_for_basic_authentication
  <LimitExcept HEAD OPTIONS>
       Require user some_username_for_basic_authentication
  </LimitExcept>
  Header add MS-Author-Via "DAV"
</Location>

# htpaswd -c /somewhere/.davpasswd some_username_for_basic_authentication
# /etc/init.d/httpd configtest
# /etc/init.d/httpd reload

Windows XP SP2以降では、Webフォルダ機能でのBASIC認証はhttpsでしか受け付けません。CentOS5は、標準でオレオレ証明書でのSSLが有効になっているので問題になりませんが、面倒な場合は自己責任でレジストリを変更して対処する方法もあるようです。

というわけで、着々とディスク使用量増加中

2008年8月10日

[memo][apache]ディスクに書き出す前にメモリにログエントリをバッファする

Apache2.0.41 以降には、ディスクに書き出す前にメモリにログエントリをバッファするBufferedLogs ディレクティブが用意されています。

httpd.conf に BufferedLogs On って書いてrestartするだけ。

このディレクティブは実験的なものですので、 使用する際は注意してください。

ということですが、設定して ab(Apache Bench)で前後比較してみたところ、14~15%ほど早くなったので採用。
ファイル数多めなページだと、もうちょい効くのかも。

「どうせ、Google Analyticsで見るんだから、ログ取るの止めればいいじゃん。」という意見もありますが、生ログは取っておかないと何かとアレでしょ。ヲタクとして。

続きを読む "[memo][apache]ディスクに書き出す前にメモリにログエントリをバッファする" »

2008年8月

          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31            
Powered by Movable Type 4.2-ja

About apache

ブログ「寝不足にて候(仮):」のカテゴリ「apache」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

前のカテゴリはWebアプリです。

次のカテゴリはvpsです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Creative Commons License
このブログは、次のライセンスで保護されています。 クリエイティブ・コモンズ・ライセンス.