1 名前:名無しさん@お腹いっぱい。 [2007/05/20(日) 11:21:54 ] HTTP ServerのApacheに関する話題を扱うスレッドです。 httpd.apache.org/ HTTP Serverの最新Versionは Apache/2.2.2 Apache/2.0.58 Apache/1.3.36 ●インストール済みApacheの詳細情報の調べ方 httpd -h 簡易ヘルプ httpd -v バージョン情報 httpd -V コンパイル条件など詳細な情報 httpd -l 静的リンクされたモジュール一覧 httpd -M 現在の設定ファイルで読み込まれるモジュール(2.2以降) ●公式マニュアル httpd.apache.org/docs/1.3/ Apache 1.3 httpd.apache.org/docs/2.0/ Apache 2.0 httpd.apache.org/docs/2.2/ Apache 2.2 ●ディレクティブ一覧 httpd.apache.org/docs/1.3/mod/directives.html httpd.apache.org/docs/2.0/mod/quickreference.html httpd.apache.org/docs/2.2/mod/quickreference.html
56 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/23(土) 01:39:54 ] ある特定のディレクトリへのアクセスだけ、ログファイルを分けたいのですが confファイルにどのように記述すればいいでしょうか? (仮に「/test」というフォルダがあるとして、このディレクトリへのアクセスだけログを別ファイルに記載したい) Virtualhostディレクティブの中に <Directory /test> ErrorLog /var/log/apache/test_error.log TransferLog /var/log/apache/test.log </Directory> と書いたらエラーが出てしまいました。
57 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/23(土) 05:58:50 ] httpd.apache.org/docs/2.2/mod/directive-dict.html#Context RTFM 後で分けるか、パイプ出力して別けることになるんだと思う。 実際やっている人の方法が判れば確実だね。
58 名前:名無しさん@お腹いっぱい。 [2007/06/23(土) 17:01:54 ] >>56 通常のログの設定のあたりに SetEnvIf Request_URI "/test" testlog CustomLog /var/log/httpd/test.log combined env=testlog これで行けると思う
59 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/23(土) 18:28:53 ] >>58 この方式でできました、ありがとうございました
60 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/06/28(木) 18:05:44 ] mod_layoutについて質問なんですが LayoutIgnoreURIを使用して /test.php?allow= には適用し /test.php?deny= の場合のみスルーするというような記述は出来ませんか? スクリプトへの特定のリクエストにのみlayoutを切りたいのですが。 環境はApache/1.3.37 mod_layout/3.2です。 htaccessを使って LayoutIgnoreURI /test\.php とするとtest.phpへの全てのリクエストに効いてしまい LayoutIgnoreURI /test\.php\? ... とするとエラーにはならないのですが期待通りには動いてくれません。 よろしくお願いします。
61 名前:名無しさん@お腹いっぱい。 [2007/07/03(火) 17:44:13 ] アウトプットフィルターを呼び出すモジュールを作ってみたのですが、制御方法がわかりません。 httpd.confに以下のように記述しました。 LoadModule xxx_module modules/mod_xxx.so するとサーバ上どこでもフィルターがかかってしまいます。 私が設定を間違えているのでしょうか? ご存知の方がいらっしゃいましたらよろしくお願いします。 OS:Linux #1 Thu Jun 2 22:55:56 EDT 2005 アパッチのバージョン: Apache/2.0.58
62 名前:名無しさん@お腹いっぱい。 [2007/07/06(金) 10:18:34 ] >>61 何がしたいんだよw バーチャルホストごとに使いたいの? ディレクトリ(URL)ごとに使いたいの? モジュールを初期化する時点でmergeしてるの? server_rec *s; request_rec *r; xxx_server_conf *conf = ap_get_module_config(s->module_config, &xxx_module); xxx_dir_config *conf = ap_get_module_config(r->per_dir_config, &xxx_module); ソース晒した方が早いと思われ。
63 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/10(火) 16:23:45 ] mod_rubyについてです。 *.rbxにアクセスしてもソースがそのまま表示されるのは どうしてですか?
64 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/10(火) 18:18:56 ] >>63 AddTypeしてるんだろうな
65 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/11(水) 08:45:10 ] svn.apache.org/viewvc?view=rev&revision=554744 >Try to unify format of changelog entries for 2.2.5 そろそろ2.2.5が出るのかな?
66 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/11(水) 10:16:34 ] >>64 AddTypeしてないんだけど。。。。 なんかいじってたら、Forbiddenになっちゃうようになった。 わけワカンネから777にして、実行権限も与えたんだけど だめみたい。
67 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/14(土) 04:09:36 ] AddTypeしろ、自分のやったことも説明できない馬鹿は氏ね
68 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/14(土) 07:51:28 ] MaxRequestsPerChild について質問です。 (バージョンはApache/2.0.59) httpd.apache.org/docs/2.0/mod/mpm_common.html#maxrequestsperchild 上記のURLにて、 「サーバ負荷が下がった時にプロセス数を少なくすることができる」 と記載されています。 そもそもサーバの負荷が少ない状態は、リクエスト自体が無い(少ない)状況なので、 サーバ負荷が下がった時にプロセスが停止する機会が無いと思うのですが? どっちかというと、サーバ負荷が高い(=リクエストが多い)時に、 プロセスが停止する機会が多いように見受けられるのですが、どうなのでしょうか?
69 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/14(土) 14:40:43 ] その設定、複数サイト相乗りとかならまあ目的としてあるけど、 いつもはメモリリークへの防御手段としてプロセスを殺す間隔の設定として使ってる。 サーバ負荷軽いなら、別にプロセスが多少多かろうと少なかろうとどうでもいいわけで。 メモリ使用量減らしても微小な電力消費抑制位にしかならん。相乗りの場合でもワースト ケース設計するのであれば、やっぱりあまり意味ないし。
70 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/15(日) 01:03:20 ] 漏れも>>69 と同じだなぁ。 apacheを標準状態で使ってる分には、まずメモリリークしないと思うけど、 サードパーティーのモジュールやらライブラリやらを組み込んでいると、 ちょっと恐い気持ちもあるので、気休めだけど1000ぐらいを入れてます。
71 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/15(日) 11:57:08 ] 複数のバーチャルホストのアクセスログの容量を それぞれ指定容量分のみ維持させる良い方法ってないでしょうか? rotatelogs を使うと、アクセス多いほどかなり負荷アップしそうで いやなんですが。 ログの容量チェック+ファイル名変更、みたいなスクリプトを自作して cronでまわす方がいいんでしょうか。
72 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/15(日) 23:15:47 ] CustomLog "| /usr/local/apache2/bin/rotatelogs /path/to/access_log 100M" common
73 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/15(日) 23:16:38 ] あ、ごめん。rotatelogsは嫌なのか。
74 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/18(水) 00:12:29 ] IPの範囲でアクセス規制したい場合、IPの表記はどのようにすればいいのでしょうか? 例えば、200.0.0.0から200.0.50.255までを規制したい場合などです。 200.0.0.*-200.0.50.* とかでは規制が働きませんでした。
75 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/18(水) 03:18:15 ] httpd.apache.org/docs/2.2/mod/mod_authz_host.html#allow RTFM!
76 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/18(水) 23:53:00 ] >>74 200.0.0.0/255.255.205.0 とかやれば良いんじゃないか。 050の所が 205で良いのかは間違えてるかもしれんが。
77 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/19(木) 02:40:48 ] >>76 間違えてる。 205 は2進数で 11001101 だよ。
78 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/19(木) 02:44:13 ] >>74 for i in {0..50}; do echo 200.0.$i.0/24; done | aggregate ftp://ftp.isc.org/isc/aggregate/
79 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/23(月) 15:50:47 ] ::1 - - [21/Jul/2007:23:27:18 +0900] "GET / HTTP/1.0" 302 300 "-" "Apache/2.2 (internal dummy connection)" といったログが1分間に50行くらい出て、そのままサーバーごとダウンしてしまう事が 多いのですが、何か対策法ありませんか? DebianのパッケージのApache2.2.3を使っています。
80 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/07/23(月) 23:23:57 ] graceful-stopとかを使わない。
81 名前:名無しさん@お腹いっぱい。 [2007/08/03(金) 20:29:36 ] apacheのプロセス番号から、 そのプロセスが処理した内容を知る方法があれば教えて下さい
82 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/03(金) 20:41:11 ] >>81 LogFormatの%Pで子プロセスのPIDが取れるよ。 59.106.2.6/manual/mod/mod_log_config.html#formats プロセスの挙動まで細かく知りたいならtrussとかstraceとか。
83 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/04(土) 11:23:45 ] >>81 何をしたいのか書かないと分からんぜよ。
84 名前:名無しさん@お腹いっぱい。 [2007/08/05(日) 01:16:02 ] 8/14に2.2.5と1.3.38がリリース
85 名前:名無しさん@お腹いっぱい。 [2007/08/08(水) 15:54:17 ] 2.0.60も
86 名前:名無しさん@お腹いっぱい。 [2007/08/11(土) 01:56:11 ] mod_rewriteの説明読んでいて疑問に感じたのですが RewriteCondの内容は、 一度RewriteRuleを実行したらクリアされるのですか?
87 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/17(金) 18:29:42 ] 2.0.60でトラブルがあったようで、まだでないですね
88 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/27(月) 13:01:32 ] 2.2.5、2.0.60はキャンセルになり 2.2.6、2.0.61が9/1あたりに出るらしい
89 名前:名無しさん@お腹いっぱい。 [2007/08/28(火) 16:29:30 ] Apache2.2 で導入されたキャッシュ機能の使用感はどんなもんでしょうか? ディスクキャッシュもメモリキャッシュも無いよりはあった方が良いという感じのようですが、 私が調べた限りでは以下の特徴があるように感じられます。 ディスクキャッシュは基本的にキャッシュが溜まるので削除する機能(htcachecleanなど)を導入する必要がある。 しかし、htcacheclean は ext3 に入れると重い上、管理が煩雑である。 メモリキャッシュは早いが物理メモリが許す範囲という上限がある。 管理は楽だが、複数のコンテンツを捌くリバースプロキシ向きではない。 まだ私は実際に使用していないのですが、どちらかの導入を検討しています。 (場合によっては用途ごとの使い分けを考えている。) 皆様がそれぞれのキャッシュ機能を使用した感想をお願いします。
90 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 17:33:39 ] 使ったことないけどさ、ドキュメントを読むかぎりでは 指定した URI を強制的にキャッシュから消すことってできないよね。 それじゃ使いものにならんね。性能をうんぬんする以前の問題。 キャッシュに残ってるコンテンツを今すぐ更新したい、という要望が 絶対にないと言いきれるのならいいかもしれんけど。
91 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 21:55:36 ] 指定したURLをキャッシュしない、ならできる
92 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 22:37:33 ] >>90 キャッシュフォルダを掃除すれば、できなくもないとも言える。
93 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/28(火) 22:55:06 ] ディスクキャッシュ有効にしたら、キャッシュファイルが凄く深い階層のフォルダ&大量のファイルが作られるわ キャッシュ周りで挙動がおかしくなるわ散々だった
94 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/08/29(水) 21:19:21 ] キャッシュを保持するパス階層は変更できるよ フォルダ名2文字、深さ3段もあれば十分 ただ、htcachecleanがいけてない find -delete のがまし
95 名前:名無しさん@お腹いっぱい。 [2007/09/08(土) 02:14:51 ] Apache 2.2.6, 2.0.61, 1.3.39 release age
96 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/08(土) 05:21:30 ] modssl マダー?
97 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/08(土) 10:27:16 ] Apache Portable Runtime 1.2.11 Released こっちは元々の予定通りだったのかな?
98 名前:名無しさん@お腹いっぱい。 mailto:age [2007/09/08(土) 15:52:11 ] phpでsystem()関数などから使用されるシェルを 制限シェルに切り替えることってできないでしょうか?
99 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/08(土) 17:28:14 ] >>98 rshell に切り替えるスイッチ見あたらないですね。 safe mode でしのぐのでは、姑息的ですか。
100 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/08(土) 18:33:08 ] >>97 2.2.5/2.0.60をリリースしようとしたら、APRに問題が見つかって 新しいAPRのリリースを待っていた
101 名前:名無しさん@お腹いっぱい。 [2007/09/11(火) 14:03:57 ] 2.2.6インストールしようとしたら、make中に /usr/bin/ld: cannot find -lexpat ここで停止してしまいました。 現行バージョンは2.2.4で動いてるし、INSTALLにもREADMEにもexpatに関する特記事項はなさそうだけど どこで躓いたんだろう・・・
102 名前:101 [2007/09/11(火) 14:22:18 ] OS書いてなかった。FreeBSD 6.0です
103 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 15:31:10 ] Linux厨が作ってる物はautotoolsだのbashだのexpatだのが 既にインストールされてる事が前提である事が多いからな。 入れてないなら入れるしかない。
104 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 16:12:24 ] とりあえずconfigureした後Makefileを開いてAPRUTIL_LIBSに -L/usr/local/libとでも書けばそこは通過できるらしい。
105 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 16:38:04 ] ldapは-LフラグがちゃんとAPRUTIL_LDFLAGSに追加されるけど、 expatとiconvは追加されないから、ldapに関して何も指定しなかったりすると APRUTIL_LDFLAGSが空っぽになってだめって事らしい。 --with-expat=builtinを付けてconfigureすると-lexpatも-liconvもなくなるから ファイルの修正なしでいける。
106 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 17:02:15 ] どんな OS を使うにしても何をコンパイルするにしても、野良ビルドするなら env CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib ./configure ... は常識として覚えておけ。 # Solaris なら -R も追加な。
107 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 17:07:25 ] >>106 その常識が通用しない構成になってるわけですが…。
108 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 17:22:46 ] 常識を通用させるには、このような修正が必要なようですが。 \tはタブ。 --- Makefile.in.orig\tTue May 24 21:09:35 2005 +++ Makefile.in\tTue Sep 11 17:18:42 2007 @@ -68,7 +68,7 @@ \t$(INSTALL) -m 755 apu-config.out $(DESTDIR)$(bindir)/$(APU_CONFIG) $(TARGET_LIB): $(OBJECTS) -\t$(LINK) @lib_target@ $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS) +\t$(LINK) @lib_target@ $(ALL_LDFLAGS) $(ALL_LIBS) $(APRUTIL_LDFLAGS) $(APRUTIL_LIBS) exports.c: $(HEADERS) \t$(APR_MKEXPORT) $(HEADERS) > $@
109 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 23:41:05 ] www.apache.org/dist/apr/CHANGES-APR-UTIL-1.2 Changes with APR-util 1.2.9 *) Change configure's expat detection to use standard linker-based tests, fixing build on e.g. biarch Linux systems. PR 28205. [Joe Orton, Ruediger Pluem]
110 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/11(火) 23:44:54 ] てゆーか、LDFLAGがどうたらとかそんな訳の分からないインチキしないで configureのときに--with-expat で指定しちゃ駄目なのかい? $ srclib/apr-util/configure --help | grep expat --with-expat=DIR specify Expat location, or 'builtin'
111 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/12(水) 00:03:48 ] >>110 それbuiltinしか効かない。 結局expatが見つかったときに-L/usr/local/libとかを足す部分が 1.2.8と1.2.10の間で削り落とされてるんで。
112 名前:101 [2007/09/12(水) 00:43:00 ] 遅くなりましたが皆さんありがとうございました。 105さんの方法をためしたところ通りました。 毎度ながら己の未熟を感じさせられてしまう・・・
113 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/12(水) 11:57:10 ] Apache 2.2.6にしてから気が付いた現象なんだが、 ServerTokens Fullにしているとgraceful restartの後にServer:ヘッダが おかしなことにならない? こんな感じで↓ --- Server: Apache/2.2.6 (Unix) mod_ssl/2.2.6 0\011string\011\011Article \011message/news\0118bit --- 紛れ込んでるのはconf/magicの断片のようだけど。
114 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/12(水) 12:14:02 ] >>113 マジで?
115 名前:114 mailto:sage [2007/09/12(水) 12:16:48 ] 途中投稿してしまった >>113 マジで?ちょっと再現してみたい mod_mime_magic入れてる?
116 名前:114 mailto:sage [2007/09/12(水) 13:25:59 ] あった https://issues.apache.org/bugzilla/show_bug.cgi?id=43334
117 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/12(水) 22:03:07 ] これのせいで、早くも2.2.7を出すかという話すら出てる
118 名前:名無しさん@お腹いっぱい。 [2007/09/15(土) 12:01:25 ] mod_layout のページ閉鎖したの?? ttp://software.tangent.org/ ↑ Go away :) って言われちゃうんだけど^^; まぁ、ソースは俺の手元にあるから、俺自身は全く困らないのだが。 Brian氏、とうとう匙を投げたかw
119 名前:名無しさん@お腹いっぱい。 [2007/09/15(土) 12:04:00 ] 自己レス。 ttp://tangent.org/ ↑これなら入れるんだ。 バーチャルホストででも制限してるらしいな。 まったく、人騒がせな。。
120 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/18(火) 17:33:36 ] あるバーチャルホストのログのローテーションするシェルスクリプトを 作成しているのですが、 mv access_log access_log.1 touch access_log としても新規に access_log へログが書き込まれません。 apacheをリロードすると再度書き込みが開始されるのですが、 リロード以外に解決方法はないでしょうか。
121 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/18(火) 17:37:33 ] >>120 httpd.apache.org/docs/2.0/logs.html#rotation
122 名前:120 mailto:sage [2007/09/18(火) 18:17:26 ] >>121 コマンド処理側で工夫して対応する方法はないでしょうか。 このケースであれば、 一旦ファイルの削除がなければ、 リロード作業は不要になるかと思います。 mv の代わりに cp を使えば一応対応とはなりますが、 コピー処理中に書き込まれたログが access_log.1 に移らない ため、使えなくなっています。
123 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/18(火) 18:22:02 ] pc11.2ch.net/test/read.cgi/unix/1186815324/376 の人? >>122 ないです。 シグナル送るのがいやなら httpd.apache.org/docs/2.0/logs.html#piped しておくとか。
124 名前:120 mailto:sage [2007/09/18(火) 18:39:05 ] >>123 はい、その人です。 対象のログファイルがかなり多いので、 事実上、ローテーションするたびに シグナル送るのは困難です。 パイプも現在のconfファイルを大幅に変更しなければ 対応が難しいので避けたいです。 cp 使って差分は諦めるか、 大量の mv 処理が終わってから kill -HUP でしょうか。
125 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/18(火) 18:43:18 ] >>124 mv なんて一瞬じゃん、って向こうでも言われたでしょ。 つーか、logrotate かなんか入ってないの? OS は何?
126 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/18(火) 18:44:39 ] HUP じゃなくて USR1 な。 httpd.apache.org/docs/2.0/stopping.html#graceful
127 名前:120 mailto:sage [2007/09/19(水) 07:10:10 ] >>125 すぐにテストできるのがredhatしかなかったんですが、 1GB程度のファイルを mv したら 20分くらい時間がかかりました。。。。 freebsd とかだと違うものなんでしょうか。
128 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/19(水) 07:39:52 ] 別のドライブにmvしてるの?
129 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/19(水) 08:03:55 ] 別パーティションにmvだとしても、 1GBなら、たとえ20MB/sの遅いドライブだとしても50秒でmvできるはず。 20分もかかるならどこかシステムが壊れてる。
130 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/19(水) 09:39:40 ] >>127 まず同じパーティション内で mv してから graceful でログファイルを切り替え、 その後に落ちついて別のパーティションに mv すれ。 redhat ってのが正確にどのディストリかわからんが きっと logrotate があるはずだから man 読んどけ。
131 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/19(水) 22:24:57 ] >>129 20MB/sで本当に転送できるならいいんだけどな・・・
132 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 14:40:30 ] mod_proxyなんだけど ProxyPass /hoge 192.168.1.123/fuga ProxyPassReverse /hoge 192.168.1.123/fuga って設定してアクセスすると example.com/hoge// みたいにURL末尾の/が2重になっちうんだけど、なんで?
133 名前:132 mailto:sage [2007/09/20(木) 16:47:35 ] firefoxの場合だけみたい まぁいいや
134 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 18:30:57 ] hogeがディレクトリだったら/で終わらせないと別の解釈になる
135 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/20(木) 19:44:06 ] 最後のスラッシュを揃えない時の誤動作を利用してうまく消せたような。
136 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 12:23:08 ] apache benchで負荷テストをしているのですが、Document LengthとHTML transferredが食い違っているように見えます。 nの値×Document Length=HTML transferred となると認識していますが、違うのでしょうか。 違っていた場合、HTML transferredは何の値でしょうか。 以下その際の値です ab -n 100 -c 10 example.com/test.3gp Document Length: 9824113 bytes HTML transferred: 1001152010 bytes
137 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 13:55:23 ] ↓この辺は? 認識は合ってると思います。 Non-2xx responses Failed requests Write errors
138 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 15:19:00 ] >>137 もったいぶっててもアレなのでログをさらします。 ab -n 100 -c 10 example.com/test.3gp This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, www.apache.org/ Benchmarking kenmoprototype.develop.dorasu.jp (be patient).....done Server Software: Apache/2.0.52 Server Hostname: example.com Server Port: 80 Document Path: test.3gp Document Length: 9824113 bytes
139 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 15:19:40 ] >>137 続きです Concurrency Level: 10 Time taken for tests: 727.624669 seconds Complete requests: 100 Failed requests: 0 Write errors: 0 Total transferred: 1001183838 bytes HTML transferred: 1001152010 bytes Requests per second: 0.14 [#/sec] (mean) Time per request: 72762.469 [ms] (mean) Time per request: 7276.247 [ms] (mean, across all concurrent requests) Transfer rate: 1343.71 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 24 114 425.1 44 3093 Processing: 60122 71441 8138.9 70695 97460 Waiting: 65 124 94.4 86 630 Total: 60157 71555 8114.6 70742 97504 Percentage of the requests served within a certain time (ms) 50% 70742 66% 72620 75% 73846 80% 74514 90% 86088 95% 90733 98% 95659 99% 97504 100% 97504 (longest request)
140 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 17:51:06 ] >>138 ,139 ab -c1 -n1 でやってみた時のDocumentLengthとHTMLTranferredは同じになる?
141 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 18:00:34 ] >>140 こうなりました。 ab -n 1 -c 1 example.com/test.3gp This is ApacheBench, Version 2.0.41-dev <$Revision: 1.141 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, www.apache.org/ Benchmarking example.com (be patient).....done Server Software: Apache/2.0.52 Server Hostname: example.com Server Port: 80 Document Path: /test.3gp Document Length: 9824113 bytes Concurrency Level: 1 Time taken for tests: 0.885998 seconds Complete requests: 1 Failed requests: 0 Write errors: 0 Total transferred: 9824435 bytes HTML transferred: 9824113 bytes Requests per second: 1.13 [#/sec] (mean) Time per request: 885.998 [ms] (mean) Time per request: 885.998 [ms] (mean, across all concurrent requests) Transfer rate: 10828.47 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.0 0 0 Processing: 885 885 0.0 885 885 Waiting: 16 16 0.0 16 16 Total: 885 885 0.0 885 885
142 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 18:48:36 ] >>141 うう〜ん、ab自体が壊れてるわけではなさそう。 DocumentLengthは大体9MB位だから -n100 でも約1GB以下か。オーバーフローでもないな。 (以前、2G超のファイルをabってみたとき、数値が32bit signed longでオーバーフローしたことがあるから、 ソースから、long->long longに修正したことはある。ちなみにx86ね。x64だとlongでもフローしない) ちなみにその test.5gp ってやつは、常に同じ長さを返すDocumentなの? うちで以前cgi(毎回微妙にサイズの異なるDocument返す)のテストやってた時は、 たしかにいくつかは Faid requests で(Length **)になるときもあるけど、 そうならななくて Faild requests 0 になるときもあった。 確かにそのスクリプトは毎回違う長さを返すはずで、それこそ -n1000 とか -n2000 で、全てたまたま 同じ長さになったとは考えられない。(確率的には1/3で全く同じサイズになるようなスクリプトだった) この時はDocumentLengthの値と、HTML transferredを注意して見てなかったけど、 多分だけど、合計計算したら違ってたはず。 なんでこうなるかはよくわからいけど、その時はフ〜ンてな感じで気にもしなかった。 (あんまりよく覚えてないけど、返すサイズが比較的少ない時(1KB以下とか)はFailed requestになって、 比較的大きめのサイズ(100-200KB?以上)のときは、Failed request 0になったような気がする。 ごめん、今すぐ確認できる環境にない)
143 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 18:52:36 ] ごめ、test.5gp は test.3gpのまつがい
144 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 19:03:28 ] >>142 常に同じ長さを返します。というか単一の動画バイナリファイルなのです。 どこかでロストしていることは考えられるのでしょうか?
145 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 19:36:11 ] >>144 う〜んそうか・・。 それなら142の内容は関係ないね。 ちなみにabった時の、ApacheのLogほうの返したサイズはどうなってるの? 上のテストした時は、ApcaheのLogのほうも、Requestごとに微妙に違うサイズを返してるハズなのに ab の結果では Failed Request 0 だった。 よくわからんけど、ネットワーク越しにやってるんなら、途中経路とかでロストして、パケット再送とかしてるかも? そんときはlocalhost上でやってみるとか。 あと、abは400台500台のレスポンスステータスは補足してくれるけど、ステータス200でもらったら、その中身までは 補足出来ない(まああたりまえか)から、ブラウザ等でやってみないと実際にちゃんと返ってるか確認はできない。 まあbenchだから単位時間あたりどれくらいレスポンス返すかとかの目安程度にしかならないんじゃないのかな。 うちでも上のとは違うテストで、DBがらみのcgi組んだ時なんかは、「おお〜200/sくらいかえしてるジャン」とか思ってたら、 詳しく見てみると実は、DB接続失敗時のErrorテキスト返してるだけだった、とかもあるし・・・。 まあつまり、これ以上はようわからんとゆうことで・・・。
146 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 19:41:07 ] HTTPヘッダをてんこ盛りにすると差が大きくなるとか、チャンクでバラバラになったときの チャンクのバイト数の部分が差になるとか…。
147 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/21(金) 19:49:17 ] >>145 apacheログ確認は失念してました。 今出先なので、後で確認してみます。
148 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/22(土) 02:08:13 ] ここで聞いていいんかな。 php5をcgiとして動かしてるんだけど、 ttp://jp2.php.net/manual/ja/configuration.php の 「現在の作業ディレクトリ (CLI を除く) 」 からphp.iniが読み込まれない。 コンパイル時の--with-config-file-pathのほうのphp.iniが読み込まれちゃう。 php4で同じことすると ちゃんと 「現在の作業ディレクトリ (CLI を除く) 」 からphp.iniを読み込んでくれる。 どなたかアドバイスきぼんぬ
149 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/22(土) 11:16:58 ] >>146 それ漏れも疑って調べてみたけど ・ab/ab2ともHTTP/1.0でリクエスト出すので、chunked transfer自体発生しない ・応答ヘッダに X-Hogehoge: hogehoge を大量に付けて見たけど、変化せず だった。 ただし、漏れのところでは Document Length == HTML Transferred なので、 もう >>141 を ab -v 2 とか付けて、本文は途中カットしたものを流して 貰うとかしかないか?
150 名前:149 mailto:sage [2007/09/22(土) 12:19:39 ] 気になったのでもうちょっと調べたら、ab が結果的に -n で指定した 回数以上のアクセスを行っていて、その結果、レポート中の実転送量と 「完了した」アクセス数の数字がずれるのが原因と判明。 要するに ab は -c で指定された多重度でとにかく接続し続けていて、-n より 多い回数「完了」したら、その時点で走っている接続は打ち切りになる。 で、打ち切りにはなるのだけど、転送量のカウンタは回ってしまっているので、 レポート上はずれて見える。なので -c 10 -n 100 として、99 回完了して 残り 1 回という段階でもまだ 10 接続が多重で走ってる。で、そのどれかが 完了したら ab は終了になるが、残り 9 本が途中まで転送したバイト数も カウントはしてしまう。 で、このズレが発生しやすい・大きくなりやすい条件というのが - 並列度が高くて(=-n 回完了時点で余分に取る奴らが多数いて) - コンテンツサイズが大きい(余分に取った時のズレがでかくなりやすい) ということ。
151 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/22(土) 23:00:47 ] おとといportsでapache-2.2.6 にしてから もう2.2.6_1が出たんかい…
152 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/22(土) 23:12:51 ] リビジョンのバンプは知りません。
153 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/23(日) 12:39:14 ] Apache2.2で、hogehoge.hogeでアクセスされたときは正常にHTMLを返し、 IPでアクセスされた場合に、サーバーが存在しないかのように振舞うことは可能でしょうか?
154 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/23(日) 13:29:18 ] リクエストされたときのホスト名がなんであったかは apache の環境変数でわかる。それによって応答を どうするか決めるのは、PHPなら簡単。apache レベル でどうだったかは、ちょと分からないですけど。あと、 「サーバが存在しないかのように振る舞」うのの実際の 中身がやや問題鴨。
155 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/23(日) 14:44:35 ] つSetEnvIf
156 名前:名無しさん@お腹いっぱい。 mailto:sage [2007/09/23(日) 20:43:57 ] IPアドレスでのアクセスを後で利用するならVirtualHostだな。