Home > Unix系OS > Apache Archive
Apache Archive
【Apache】サイトのコンテンツ全てをgzip圧縮する
「Javascriptライブラリをgzip圧縮する」や「YUI CompressorでJavascriptを圧縮する」では、個々のファイルを圧縮して転送量を減らす技を書いた。でも、このように個別に指定するのではなく、透過的に実行してくれる方がありがたい。そのようなときに便利なのがApacheのmod_deflateモジュールだ。
@IT:mod_deflateによるコンテンツの圧縮転送
http://www.atmarkit.co.jp/flinux/rensai/apache2_04/apache04a.html
wadsのblog » Blog Archive » [Apache] mod_deflateでコンテンツをgzip圧縮して通信する
http://wadslab.net/2008/09/mod_deflate/
mod_deflateに関しては上の2つのリンクが詳しいのだが、ちょっと情報が古い。「圧縮するべきファイルのタイプ」を指定する為に使われている「AddOutputFilterByType」ディレクティブは現在では非推奨になっている。
下で説明される理由により、本ディレクティブは非推奨です。 (中略) AddOutputFilterByTypeディレクティブにより有効にしたフィルタは場合によっては、部分的もしくは完全に適用されないことがあります。例えば、MIMEタイプが決定できないときにはDefaultTypeの設定が同じだったとしても、DefaultType設定を使うようになります。
http://httpd.apache.org/docs/2.2/ja/mod/core.html#addoutputfilterbytype
その代替策として使えるのがmod_filterだ。
Apache 2.2 mod_filterを使いこなす – AddOutputFilterByType DEFLATE text/htmlを書き換えてみる « cyano
http://www.onflow.jp/cyano/archives/137
- Comments: 0
- TrackBacks: 0
iPhone用ページに自動で転送する
- 2010年3月21日 22:27
- Apache | Movable Type
- Tweet
「」では iPhone 用のページを作成し、切り替えて利用できるようにした。しかし、実際に使うときにはPCで見たときは PC 用ページ、iPhone で見たときには iPhone 用ページを表示して欲しい。そんなときは Apache の mod_rewrite モジュールを利用する。ここのサイトが詳しかった。
杉浦とホームページ製作〜 URL を書き換えろ!「Rewrite 機能とは」
http://www.nurs.or.jp/~sug/homep/rewrite/rewrite1.htm
Apache の設定を確認
httpd.conf に次の一行があるか確認する。そもそもこれがないとモジュール自体が機能しない。
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
そして肝心の「iPhone 用のページに自動で転送する」ためには次の設定を使う。
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (iPhone|iPod)
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^(.*)\.html$ /m/$1.html [L]
User-Agent 文字列に「iPhone」「iPod」を含み(2 行目)、要求された URI が「/m/」で始まらない場合は(3 行目)、HTML ファイルの要求を「/m/」ディレクトリにある同名のファイルへ転送する(4 行目)。これをどこに書くかは二通りある。
httpd.conf(またはそこにインクルードされるファイル)に書く- 転送したいファイルのあるディレクトリの
.htaccessに書く
- Comments: 0
- TrackBacks: 0
【Mac OS X】newsyslogを使ってログローテートする
Mac OS Xにおいて定期的なログローテートを行うには「newsyslog」を使う。今回はApacheとSquidのログについて設定する。設定ファイル「/private/etc/newsyslog.conf」に、以下の行を追加した。
#### Apache用の設定 /var/log/apache2/access_log 644 7 * $W1D04 JB /var/run/httpd.pid /var/log/apache2/error_log 644 7 * $W1D04 JB /var/run/httpd.pid #### Squid用の設定 /opt/local/var/squid/logs/access.log squid:squid 644 7 * $W1D04 JB /opt/local/var/run/squid/squid.pid /opt/local/var/squid/logs/cache.log squid:squid 644 7 * $W1D04 JB /opt/local/var/run/squid/squid.pid /opt/local/var/squid/logs/store.log squid:squid 644 7 * $W1D04 JB /opt/local/var/run/squid/squid.pid
以降の説明は以下のサイトを参考にさせていただきました。
MacOSXでサーバー稼業 : Web共有機能のログをローテーションさせよう
http://earlybirds.ddo.jp/namahage/inegalog/article.php?id=64
newsyslog
http://www.wakhok.ac.jp/~kanayama/summer/02/site/node124.html
- Comments: 0
- TrackBacks: 0
AWStatsでちょっとリッチなアクセス解析 @ Mac OS X
すでにWebalizerは導入済みなのだけれど、もうちょっとリッチなアクセスログ解析システムが欲しくなった。ググってみるとそのようなシステムはいくつかある。
Analog: WWW logfile analysis
http://analog.cx/Visitors - fast web log analyzer
http://www.hping.org/visitors/index_jp.phpHome of The Webalizer
http://www.mrunix.net/webalizer/AWStats - Free log file analyzer for advanced statistics (GNU GPL).
http://awstats.sourceforge.net/
参考:Google Analytics にてアクセスIPをチェック|トピックを表示
http://forum.tsukaeru.net/viewtopic.php?t=3470
いろいろある中でもPerlで書かれてて中身がわかりやすそうなAWStatsを選んだ。こいつは前に導入したWebalizerよりずっと優れていて、解析結果が細かいだけでなく、スクリプトまで書いて対処した問題に煩わされることもない。
- Comments: 0
- TrackBacks: 0
CentOSでperl 5.10.1 + Catalyst + mod_perl
CentOS 5.4は未だにperl-5.8.8なので、perl-5.10.1をソースからインストールした。この作業は簡単なので詳細は省く。
$ tar jxvf perl-5.10.1.tar.bz2 $ cd perl-5.10.1 $ ./Configure -de $ make $ make test $ sudo make install
しかし標準でインストールされるmod_perlはあくまでperl-5.8.8用にビルドされている。本当ならSRPMを落としてきてリビルドするのがいいのだが、面倒なのでmod_perlのソースからインストールする。
mod_perlのインストールにはapxsが必要だ。これはhttpd-develパッケージに入っている。
$ sudo yum install httpd-devel
後はいつもの手順通り、mod_perlのインストールだ。
- Comments: 0
- TrackBacks: 0
Webalizerで文字化けを解消する、他
以前の記事「Mac OS XにWebalizerをインストール → DNSCacheでハマる」ではMac OS XにてWebalizerをインストールする方法を書いた。このとき日本語化するオプション(--with-language=japanese)をつけたのだが、これによって用語が日本語化される代わりに、Total Search Strings(検索文字列リスト)が文字化けしてしまう。
原因は、検索文字列のエンコーディングにUTF-8が使用されているのに引き替え、HTML自体にはEUC-JPが使われているためだ。しょうがないので、作成したHTMLファイルに細工を加えることにする。
- Comments: 0
- TrackBacks: 0
Mac OS XにWebalizerをインストール → DNSCacheでハマる
Mac OS XにWebalizerをインストールしてみた日記。とりあえずいつも通りMacPortsを使ってみる。
$ sudo port install webalizer
すると
/opt/local/etc/webalizer.conf.sampleというサンプルの設定ファイルが出来ているので、それを見ながらオリジナルのファイルを作成。設定ファイル内のコメントと、ここら辺を見て書いた。Webalizer について
http://www.sea-bird.org/doc/Solaris8/webalizer2.html
5-7. Webalizer-ログ解析ソフト: 自宅サーバプロジェクト
http://saba.nitty-gritty.org/400web/55_webalizer.html
設定内容は↑のリンク集そのまんまだが、注意すべきところは次の3行。
HTMLHead <META http-equiv="content-type" content="text/html; charset=euc-jp"> DNSCache /var/log/apache2/dns_cache.db DNSChildren 10
まず1行目の
HTMLHeadだが、これは作成される解析ページに追加する<meta>タグを指定する。メッセージを日本語にする(方法は下に書く)時には、このタグがないと文字化けしてしまう。2,3行目はDNSキャッシュの指定だ。一度調べたホスト名をデータベース化しておくことで、解析ページ作成にかかる時間を短縮する。便利なオプションなので必ず指定しておきたい。......のだが、早速実行してみるとこれが問題だった。
- Comments: 0
- TrackBacks: 0
- Feeds
- CC Licence
-
このブログはクリエイティブ・コモンズでライセンスされています。
- Ferret アクセス解析
- W3C Validation
