apache

apache のsourceに付属している起動scriptが間違ってる件

build/rpm/httpd.init。statusのとこの${pidfile} の変数が間違ってる $ diff -u httpd.org httpd --- httpd.org 2010-12-09 18:18:51.000000000 +0900 +++ httpd 2010-12-09 18:19:01.000000000 +0900 @@ -116,7 +116,7 @@ if ! test -f ${pidfile}; then e…

apacheの mod_cache の設定を復習した

http://httpd.apache.org/docs/2.2/en/mod/mod_cache.html http://httpd.apache.org/docs/2.2/ja/mod/mod_cache.html "Studying HTTP" HTTP Header Fields apacheの日本語のdocumentはversionが古くて、いくつかのdirectiveの説明が無い。他には Caching Gui…

mod_proxy - ProxyPass、BalancerMemberのパラメータのdocumentを読んだのでまとめた

http://httpd.apache.org/docs/2.2/en/mod/mod_proxy.html#proxypass http://httpd.apache.org/docs/2.2/ja/mod/mod_proxy.html#proxypass timeoutとかconnectionとか。今まで真面目にみてなかったので。mod_proxyのdocumentは翻訳が追いついてないためか、…

apache 2.2.12以降で ProxyPassReverse が balancer:// でも使えるようになってた

http://archive.apache.org/dist/httpd/CHANGES_2.2 ProxyPassのパラメータ検討してて、色々見てたら表記の記述を発見。 *) mod_proxy: Complete ProxyPassReverse to handle balancer URL's. Given; BalancerMember balancer://alias http://example.com/fo…

open proxy 経由のsmtp

spamの温床になるのでポート制限をしていないopen proxyはやめましょうっていう。当たり前だけど。 apacheのmod_proxy を使う話 http proxyサーバに接続後 CONNECTメソッドでsmtpサーバへ接続 apache で実装する場合、mod_proxy、mod_proxy_connect を有効に…

apache + subversionのwebdav上のhtml/textファイルを正しく開く方法

思いつきエントリで。リポジトリのファイルをwebから直接参照したい場合に。 通常のsubversionの設定だと、index.html とかのファイルにアクセスしてもContent-typeがplain/textなのでhtmlソースが表示される。また、ただのテキストな設定ファイルでもエンコ…

Rangeリクエスト勉強

ボディの一部分を取得するとき。レジュームによる再DLとか。応答は206 Partial Contentになる。ただし、apacheでcgi/ssiを使っていて、Centent-Lengthを返さない場合はRangeリクエストされても、200 OKでボディ全体を返す。cgi/ssi でもアプリ側でContent-Le…

apacheはContent-LengthレスポンスヘッダがないとRangeリクエストが有効にならない

っていうことを知らなかった。versionによるかも? 試したのは2.2.15。rangeリクエストはレジュームによる再DLとかで、コンテンツの一部を取得したいときに使う。他には携帯で動画をDLして再生するときとかに使われてる? http://www.studyinghttp.net/heade…

mod_deflateで動的コンテンツにContent-Length レスポンスヘッダを追加する

なんか噂に聞いたのでやってみた。携帯向けではContent-Lengthが必須ヘッダ(docomoとsoftbank)となっているけど、cgi/ssiだと (cgiはアプリ側で記述していなければ) Content-Lengthヘッダは追加されない。でもmod_deflateで圧縮すればapacheが勝手に追加して…

SSLアクセラレータ/リバースプロキシ配下でのwebdav

http://silmor.de/49 http://blog.yoheis.net/2007/08/webdav.html http://blog.dealforest.net/2009/07/subversion_behind_an_apache_reverse_proxy/ http://httpd.apache.org/docs/2.2/ja/mod/mod_headers.html#requestheader http://httpd.apache.org/doc…

共有webサーバでperl, php, python等を提供する場合の設定

断片部に書いてた(放置してた)メモにphpのこと追記して整理。 今までにメモってた色々なエントリ (主にphpをcgiで動作させる関連) apache + suexec, suphp phpのinstall - SAPI cli, cgi, apache DSO module メモ suphpでphp.iniの設定を上書きする phpをcgi…

phpをcgiで動かすときのmod_suphpの特徴

素のcgiモードで動かす場合と比較して。 mod_actionの設定が不要 どのURLにAliasするとかとか考えなくてよい 実行されたphpを特定しやすい suexecのログにはphp-cgi しか記録されない suphpのログには実行したphpファイルまで記録される もちろんsuexec + ac…

phpのinstall - SAPI cli, cgi, apache DSO module メモ

http://www.php.net/manual/ja/features.commandline.php http://www.php.net/manual/ja/security.cgi-bin.php http://d.hatena.ne.jp/hogem/20090809/1249801747 今まで専用サーバだからほとんどapache moduleとして入れていたけど、共有サーバだからcgi版…

apacheのRLimitCPUはworkerでは有効にならないのか

preforkのサーバは制限できてるけど、workerでは効いてないぽいので調べた。 設定 ## 120 second RLimitCPU 120 ## 64M byte RLimitMEM 67108864 確認用のcgi とりあえず無限ループするだけのcgi。RlimitCPUはプロセス生存時間じゃなくてCPU利用時間の制限な…

MultiViewsMatchのデフォルトの動作 について

http://norainu.net/mt/archives/2005/08/multiviewsmatch.html http://httpd.apache.org/docs/2.2/ja/mod/mod_mime.html#multiviewsmatch http://httpd.apache.org/docs/2.2/ja/content-negotiation.html#extensions MultiViewsを使うとファイルの拡張子を…

MultiViewsでコンテントネゴシエーション

http://httpd.apache.org/docs/2.2/ja/mod/mod_negotiation.html http://httpd.apache.org/docs/2.2/ja/content-negotiation.html http://httpd.apache.org/docs/2.2/ja/mod/mod_mime.html Options MultiViewsで設定。Webブラウザ(つかHTTP Request Header)…

apacheのlocationのdocument間違ってる??

あれー勘違いかな。今さらながら初歩的なところに疑問が。 http://httpd.apache.org/docs/2.2/ja/sections.html#file-and-web ここのmanualにあるように、 <Location /private> Order Allow,Deny Deny from all </Location>と設定すると、/privateから始まるURL http://yoursite.example.co…

apache1.3で最大接続数を増やす

apache1.3系を使う機会がなくなってきたけど、たまに要るので。apache1.3系はソースで上限が256固定なので、変更したいなら $ grep HARD_SERVER_LIMIT src/include/httpd.hで出てくる値を適当に変更する。2.0, 2.2だとServerLimitディレクティブで変更可能。

tracで静的ファイルをpythonから分離する

mod_pythonでも効果があったので、trac.cgi経由の場合はもっと顕著に効果が出そう。 直接apache(aliasとtrac.iniのhtdocs設定)で応答した場合 $ ab -c 10 -n 100 http://example.com/tracdocs/css/trac.css | grep 'Requests per sec' Requests per second: …

mod_proxyのProxyPassReverseの意味がようやく理解できた

気がする! なぜProxyPassReverseにbalancer://~~ を設定できないのか *1 なぜProxyPassReverseにajp://~~ を設定できないのか なぜbackendがhttpとajpの場合で、ProxyPassReverseに設定するURLが異なるのか などなど。今まではmod_proxyする機会がほとんど…

apacheのDirectory、Locationを複数書く場合(マージ)の注意点

Directory、Locationなどを複数書いて設定している場合(特にIncludeで入れ子してる時とか)は、うっかりしていると設定間違えかねないので注意ですね。 http://httpd.apache.org/docs/2.2/ja/sections.html#mergin 適用される順番 (正規表現無し) と .htacces…

mod_proxy_ajp or RewriteRule(Pフラグ)でajpに渡すときのheaderを勘違いしてた

RewriteRule ^/hoge/(.*) ajp://localhost:8009/hoge/$1 [QSA,P,L] もしくは ProxyPass /hoge ajp://localhost:8009/hoge とかした場合でもhost headerはlocalhostじゃなくて、originalのHTTPのhost headerを送る。tomcatでvirtualhost(CATALINA_HOME/localh…

apacheのmod_sslで中間証明書設定

最近のssl/tlsはLBで終端しているのでmod_sslのことほぼ忘れている。 http://httpd.apache.org/docs/2.2/ja/mod/mod_ssl.html#sslcacertificatefile SSLCACertificateFile /path/to/cert.pem

apacheで特定のディレクトリ、URLでErrorDocumentの設定を解除する

サイト全体でErrorDocumentを設定しているけど、特定ディレクトリだけ設定を外したいときとか。もっとややこしい記憶があったんだけど、こんな簡単だったか。 http://httpd.apache.org/docs/2.2/ja/mod/core.html#errordocument <Direcotry /path/to/hoge > ErrorDocument 403 default </Directory>

apacheのRedirectとRedirectMatch

RedirectはURLを引き継ぐけどRedirectMatchはでキャプチャした変数を使わない場合は引き継がない。というのをたまに忘れる。 Redirect /foo http://exmaple.com/foo RedirectMatch /bar http://example.com/bar RedirectMatch /baz/(*) http://example.com/b…

mod_rewrite - RewriteCondのANDとORの優先順位について

## 追記 改めて自分の書いた記事を見たら日本語の意味がよくわからないw 結論はRewriteCondに[OR]を書くと、次のRewriteCond とのORになる、ということ ## 追記おわりANDのほうが優先順位高いと思ったら、RewriteCondはORのほうが上なのか?携帯から/m/以外…

apacheのErrorDocument勘違いしてた

ん?apacheのErrorDocument、というかエラーページの出しかた変わった?当然だけどErrorDocumentのURL自体に、アクセス権がない(IP許可されてない)場合、ErrorDocmentは表示されないんじゃなかったっけ? 例えばこんな設定で、documentroot以下に/errがある…

apache + suexec, suphp

参考 http://httpd.apache.org/docs/2.2/ja/suexec.html http://httpd.apache.org/docs/2.2/ja/mod/mod_suexec.html http://bitarts.jp/tech/linux/suexec.html http://www.aconus.com/~oyaji/www/apache_linux_suexec.htm cgi + suexec cgiをapacheユーザじ…

apacheでバーチャルホストごとの同時接続数制限

必要になりそうなので調べた。apache 2.2で試したところ普通に使えるっぽい。 参考 http://sysdesign.pl/mod_cband/ mod_cband 帯域/同時接続数制限 ## kbps rps connection CBandSpeed 1024 10 30 status <Location /cband-status> SetHandler cband-status </Location> directive一覧 sourceの…

slowlorisを実行するには、それなりのスペックが必要?

ちょいとslowlorisを実験してみようとvmware上のdebian5で動かしたんだけど、一向にサーバのapacheが落ちない。なんだかな〜と思って別の物理的なサーバからslowloris実行したらあっさり落ちた。 ホストOSのWindowsもしょぼしょぼだから、そんなもんなのかな…