1 2 次ページ / page 1 (2)

カテゴリ:Apache

2008-09-09 Tue


AllowOverride について [Apache]


アクセスログを見てたら、どうも AllowOverride の使い方を知りたくて Google 経由で来ている人が多いみたいなので、

AllowOverrideについて

を書いてみた。

Referrer (Inside): [2008-09-11-2]


2007-08-12 Sun


CGI の出力に SSI [Apache]


Apache 2系統でCGIの出力の中で、SSI が使えるらしい。

http://httpd.apache.org/docs/2.0/ja/mod/mod_mime.html#addoutputfilter

ほんと? かなぁと思って試したら動いた。設定はこんな感じ。

AddHandler cgi-script .cgi
AddOutputFilter INCLUDES .cgi
<Files *.cgi>
        SetOutputFilter INCLUDES
</Files>


もちろん、ただでさえ CGI は処理が重いのに、さらに重くなること請け合い (^_^;


2007-05-14 Mon


mod_evasive [Apache][Security]


http://itpro.nikkeibp.co.jp/article/COLUMN/20070510/270527/

mod_dosdetector とどっちがいいんだろ? それとも用途が違ってたりする?


2007-03-02 Fri


OpenSSL の確認コマンド [Security][Apache]


- 秘密鍵の内容を確認

openssl rsa -in key.pem -text


- CSRの内容を確認

openssl req -in req.pem -text


- 証明書の内容を確認

openssl x509 -in cer.pem -text


- CRL の内容を確認

 openssl crl -in crl.pem -text


どっかのサイトで見たやつ。どこだっけ……これかな?

http://chinmai.net/~osakana/tech-memo/wiki.cgi?page=OpenSSL+CSR%2C+%BE%DA%CC%C0%BD%F1%A4%CA%A4%C9%B3%CE%C7%A7%A5%B3%A5%DE%A5%F3%A5%C9


2007-02-17 Sat


mod_cache [Apache][開発]


もう少しだけmod_cacheを深追いしてみる
http://as-is.net/blog/archives/001213.html

via オレンジニュース


2007-02-09 Fri


Apache2 worker について調べてみる [Apache]


apache2 worker の設定をお願いされたんだけど、prefork しか経験がなかったので、ちょこっと調べてみる。

ServerLimit
StartServers
MaxClients
MinSpareThreads
MaxSpareThreads
ThredsPerChild


あたりが、稼働プロセスに関連する設定っぽい。まぁググってもいいんだけど、やっぱり本家の情報が一番安心できるよね、ということで

Apache MPM 共通ディレクティブ
http://httpd.apache.org/docs/2.2/ja/mod/mpm_common.html

Apache MPM worker.
http://httpd.apache.org/docs/2.2/ja/mod/worker.html

をつらつらと読む。とりあえず

MaxClients数 ≦ ThreadsPerChild数 × ServerLimitプロセス数


こんな関係らしい。
ともあれ、ps コマンドでメモリの消費量を見ると、 prefork と違って、1プロセス辺りの VSZ の値が大きいなぁ。RSS の値が小さいからいいんだろうけど、どこまで増やしていいのか、悩む。

Prefork

USER VSZ RSS COMMAND
wwwrun 8892 2120 /usr/sbin/httpd2-prefork


Worker

USER VSZ RSS COMMAND
wwwrun 231124 3592 /usr/sbin/httpd2-worker


う〜ん……


2006-09-09 Sat


用途別にapacheのプロセスを分離して最適化 [Apache]


http://blog.yappo.jp/yappo/archives/000450.html

mod_proxy をフロントにして、mod_perl 用、mod_php用、svn用などと、apacheのプロセスを分離する考え方について。

サーバ分ける形でしか考えてなかったけど、設定ファイルを分けて、起動スクリプト書き換えれば、プロセス単位で変更することが可能だなぁ。こんな単純なことを実行しようと思わなかったところがダメだなぁ>おれ

とりあえず開発用サーバで遊んで見て、問題点を洗い出せたら、他所でもすすめてみよう :-)


2006-06-06 Tue


自称 Apache の後継者、その名は LiteSpeed [Web][Apache]


http://wota.jp/ac/?date=20060605#p01

via http://www.pochi.cc/%7Esasaki/chalow/2006-06-06-1.html

む?

- 静的コンテンツの速度は Apache の 6〜9倍


これだけでもリスクを背負って試してみる価値ありそう。

すごく良さげだ。
でもまだ ports も deb もない。
それどころかソースも公開されていない。


ありゃ?(^^;

いまは(今後も?)バイナリだけなのね。Standard版が無料で、Enterprise版が有料かぁ。

価格表
http://litespeedtech.com/purchase/products/

これで公称値がちゃんとでれば、買ってもいい値段かも……

でも、静的コンテンツだけを考えるなら lighttpd でもいいわけだしなぁ。

http://www.lighttpd.net/benchmark/


2006-05-26 Fri


WebDAV クライアント [Linux][Apache]


IE だと、WebDAV のフォルダが

Internet Explorer では Webフォルダーとして開けませんでした


とか言われて、うまく開けないという現象がありました。どうも調べて行くと

- Digest認証

と相性が悪いらしいことが判明。って、前にも同じことを調べたような orz

ちなみに WebDAV client については

http://sugi.nemui.org/wiki/WebDAVClients

が詳しい。ちなみに上記現象の原因と対策は

http://d.hatena.ne.jp/rero/20050524/p2

に触れられている。OPTIONSメソッドをオープンにするしかないのか……ちょっと悩むなぁ。気にしすぎ?


2006-04-30 Sun


Trac で複数のプロジェクトを扱う [Trac][Python][Apache]


以下、同僚に教えてもらったりした設定例。

Trac はなかなか便利なんですが、複数のプロジェクトを扱う場合は、すこし工夫が必要。

$ trac-admin /var/trac/hoge1 initenv 'Hoge1 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates
$ trac-admin /var/trac/hoge2 initenv 'Hoge2 Project' sqlite:db/trac.db /var/lib/svn /usr/share/trac/templates


と、2つのプロジェクトを登録していた場合、

httpd.conf を

<Location "/projects/hoge1">
    SetEnv TRAC_ENV "/var/trac/hoge1"
</Location>

<Location "/projects/hoge2">
    SetEnv TRAC_ENV "/var/trac/hoge2"
</Location>


とか書き連ねて、各ディレクトリに、trac.cgi をコピーといった荒技を繰り出したくなるんですが(え?ならない?)、そんなことをしなくても

ScriptAlias /trac /usr/share/trac/cgi-bin/trac.cgi
<Location /trac>
SetEnv TRAC_ENV_PARENT_DIR /var/trac
</Location>


だけで OK。上の例だと

http://www.example.co.jp/trac

にアクセスすると、そのサイトで管理されているプロジェクト一覧が表示されるので、あとはそのリンクをたどればOK。もちろん

http://www.example.co.jp/trac/hoge1/
http://www.example.co.jp/trac/hoge2/

でもアクセス可能。

あとSubversion についてですが、ディレクトリを切ることでプロジェクトを分け、運用する場合の話。上記の例だと異なるプロジェクトのはずなのに、タイムラインを見ると、すべての更新情報が表示されるので、見通しが悪くなります(/var/lib/svnの部分)

ファイルシステム上に、そんなディレクトリねぇよ! とか思わず

/var/lib/svn/hoge1


とか指定しておくと、リポジトリツリーの hoge1 以下の変更のみが表示されるので、見通しがよくなります(cf. http://wota.jp/ac/?date=20060301#c01)

あとで直す場合は

/var/trac/hoge1/conf/trac.ini

[trac]
repository_dir = /var/lib/svn/hoge1


を修正すればOK。

ちなみに Trac の機能に不満をもったら

http://trac-hacks.org/

へアクセス。きっと欲しい機能をサポートしたプラグインがあるはず。


2006-04-13 Thu


リバースプロキシを利用する際には ProxyRequest は On にしちゃダメ、ぜったいダメ [Apache]


JANOG ML にリバースプロキシはどう?と設定例を投げたんですが、すばやく問題点を指摘して頂いた(ほんと、ありがたい……)

Apache を Reverse Proxy で利用する際には、ProxyRequest は必ず Off にしないとだめ。
On にしちゃうと、オープンプロキシになってしまう危険性がある。

ちゃんとドキュメント

http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html

にも

警告
サーバを安全にするまで ProxyRequests は有効にしないでください。 オープンプロキシサーバはあなた自身のネットワークにとっても、 インターネット全体にとっても危険です。


とか

リバースプロキシの 設定のために ProxyRequests を設定する必要は ありません。


と、その危険性にも触れてあるし、Reverse Proxy の設定例には

ProxyRequests Off

<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyPass /foo http://foo.example.com/bar
ProxyPassReverse /foo http://foo.example.com/bar


とあって、わざわざ ProxyRequest Off なんて入れてあって、間違いが起きないように補足してある。

#人に、ちゃんと Apache のドキュメント読まないとダメよと言っときながら、
#自分がちゃんと読んでなかった罠。
#確かめたつもりだったんだけど、本当に「つもり」なだけだったらしい。恥ずかしすぎ(--;

なお、オープンプロキシを探すスクリプトは世の中に出回っているらしく、Webサーバを運用している方は、ログにその形跡を目にされる方もおられると思います(ちょっと前にも話題になりましたしね(--;))

心配な方は以下のようにチェックできるはず。

$ telnet localhost 80 <= 入力
Escape character is '^]'.
CONNECT http://www.yahoo.co.jp:80 HTTP/1.0 <= 入力


これで "400 Bad Request" とか返って来れば大丈夫なはず。www.yahoo.co.jp の index.html が返ってきたら、アウト。

# ただ、この確かめ方が 100% 正しいかは要確認。以前 ProxyRequest On + Reverse Proxy の
# 設定を入れてしまっていた時に、このテストをやってみたときには、ひっかからなかったんだよねぇ

と、自戒の意味も込めて、自分の日記にも晒しておく。


2006-02-14 Tue


接続数/帯域制限で無法なダウンローダを撃退 [Apache]


http://www.atmarkit.co.jp/flinux/rensai/apache2_08/apache08a.html

Apache2.0 の機能を使って、いろいろな制限を加える手法について。

ちなみに .htaccess を使って、直リンクを防止する手法については

http://adultserver.jp/howto/

で知った。実はわりと知られた手法だったりするのかな?


2006-02-09 Thu


"%D" で記録されるリクエスト処理時間の単位はマイクロ秒 [Apache]


Apache 2.0系以降、LogFormatディレクティブに "%D" を利用すると、リクエストを処理するまでの時間が記録できます。

http://httpd.apache.org/docs/2.0/ja/mod/mod_log_config.html#formats
http://httpd.apache.org/docs/2.2/ja/mod/mod_log_config.html#formats

によると、ミリ秒単位(milisecond)とありますが、実際には英語ページにあるように、マイクロ秒(microsecond)なはず。

http://httpd.apache.org/docs/2.0/en/mod/mod_log_config.html#formats
http://httpd.apache.org/docs/2.2/en/mod/mod_log_config.html#formats

私が手もとで試した限りでは、ミリ秒単位じゃなくて、マイクロ秒単位っぽい。多分日本語ドキュメントの間違いだと思うんだけど、どこに知らせるべき?(?_?)

追記:
なんかググったらちゃんとマイクロ秒単位って説明しているドキュメントも多い。みんな基本は英語の方を参照してるってことなのかな?


2006-02-08 Wed


Awffull [Apache]


アクセスログ解析ツールの Webalizer から fork したツール

Awffull
http://www.stedee.id.au/awffull

同様に fork したものに Webdruid があるけど、こっちはグラフ描写がわりと改善されているみたい。