トップページunix
1001コメント322KB

Apache関連 Part7

レス数が1000を超えています。これ以上書き込みはできません。
0001名無しさん@お腹いっぱい。05/02/17 23:10:46
HTTP ServerのApacheに関する話題を扱うスレッドです。

前スレ Apache関連 Part6
 http://pc5.2ch.net/test/read.cgi/unix/1084829611/

●まずはマニュアル嫁。
 http://httpd.apache.org/docs/ Apache 1.3
 http://httpd.apache.org/docs-2.0/ Apache 2.0

●「自分」でバージョンぐらい調べるれ。
 httpd -h
 httpd -V コンパイル条件など詳細な情報

●Apache関連サイトへのリンクは >>2-5 あたりヨロ
0951名無しさん@お腹いっぱい。2005/12/10(土) 17:39:44
どっちかというと、デフォの httpd.conf の最初の行が

# Based upon the NCSA server configuration files originally by Rob McCool.

から

# This is the main Apache HTTP server configuration file.

に変更になったことの方が感慨深い。
apache 1.0 がリリースされて以来10年たってようやく NCSA の文字が消えた。
0952名無しさん@お腹いっぱい。2005/12/12(月) 01:17:12
最近preforkMPMから、workerMPMに移行したんですが、server-statusについて質問です。

apachectl graceful を行ったときや、MaxSpareThreadsをオーバーしたときに、
終了するモードに入った小プロセスに繋がってるリクエストは、
そのまま残るんですが、○○ requests currently being processed (BusyWorkers)にカウントされないみたいです。

これって仕様としてあきらめるしかないんでしょうか?
一定時間ごとにBusyWorkersを数えてグラフにしてるんで・・・
0953名無しさん@お腹いっぱい。2005/12/12(月) 20:11:08
誰かがファイルをダウンロードしてるときに、サーバーを止めたり再起動すると、
そこでファイルが途切れて「ダウンロードが完了しました」となるんですが
(WindowsのIEとFireFOXで確認)
これってどうしようもないんですかねえ。

仕方ないのでうちはサーバーを止めたり再起動するときはLANMケーブル抜いてからやってます
0954名無しさん@お腹いっぱい。2005/12/12(月) 20:16:35
>>953
graceful じゃだめなん?
0955名無しさん@お腹いっぱい。2005/12/12(月) 20:19:59
>>954
普段はもちろんgracefulで再起動してます。
でも、どうしてもApacheを止めなきゃいけないときがたまにあって(今日もさっき止めることになった)
0956名無しさん@お腹いっぱい。2005/12/12(月) 20:55:29
apache 2.2 で graceful-stop つーのができるようになりました。
0957名無しさん@お腹いっぱい。2005/12/12(月) 21:00:26
>>956
シャットダウンに下手したら6時間とかかかるんだが…(GracefulShutdownTimeoutできるなら結局意味ないし)
0958名無しさん@お腹いっぱい。2005/12/12(月) 21:00:59
GracefulShutdownTimeoutできる

GracefulShutdownTimeoutで切る
0959名無しさん@お腹いっぱい。2005/12/12(月) 21:07:06
ん?全接続が終了しているにも関わらず、なぜか長時間shutdownされないままになるってこと?
それとも、もともと6時間かかるダウンロードを不思議パワーで超高速でダウンロードさせたいってこと?
0960名無しさん@お腹いっぱい。2005/12/12(月) 23:36:54
Content-Length: でサイズがちゃんと明示されてたり、
Transfer-Encoding: chunked だったりする場合には、
ダウンロードの途中でサーバの方から切断しても
完了してないということはちゃんとわかるはず。
逆にこれらのヘッダを応答に含めてないののならば
そういう現象が起きてあたりまえ。

実際のクライアントの動作は確認してないけど、
これらのヘッダを送ってるのにダウンロード完了扱いにするのならば
クライアントがタコなせいでサーバ側にはどうしようもないと思う。
これらのヘッダを送ってないのにそういう現象が起きると騒いでるのならば、
そりゃあんたがアホなだけだ。
09619532005/12/12(月) 23:48:11
>>959
ファイルを途切れさせるのがイヤだから、stopはやりたくない
graceful-stopだとダウンロード完了を待たなきゃいけないから下手したら数時間待つことになる
その間新たに接続して来た人は追い返すことになる
GracefulShutdownTimeoutを設定しちゃったらstopで止めるのと変わらない

>>960
ただのファイルなんで、Content-Lengthは送られています。(今念のため確認しました。)
というわけで、WindowsのIEとFireFoxがダメなのは分かってます。
そうはいっても、この2つがアクセスのほとんどな訳で…
0962名無しさん@お腹いっぱい。2005/12/12(月) 23:51:11
無茶言いますな。
09639532005/12/12(月) 23:53:17
やっぱこれはあきらめるしかないんですかね…

LANケーブルを抜けば、クライアント側はIEの場合は終了せず、
しかし1バイトも送られて来ず止まったままになってしまいます。
それはそれで問題ですが、途切れてしまうよりはいいやと考えています。
0964名無しさん@お腹いっぱい。2005/12/12(月) 23:56:16
ContentDigest on にすると、Content-MD5 に対応してるクライアントならば
ダウンロード失敗とみなすかも。そんなクライアントが存在するのかどうか知らんけど。
0965名無しさん@お腹いっぱい。2005/12/14(水) 19:31:57
ちょっとはまった。

# apachectl start
[warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter

# kldload /boot/kernel/accf_http.ko
0966名無しさん@お腹いっぱい。2005/12/17(土) 12:30:50
ちょっと気になったことが・・・ググッたけどなにも出てこないしね。

apache1.3.3ですが、perlから無限ループのシェルを呼び出してそのままそのシェルを放置したらどうなるんでしょうか?
重いシェルを使ってやってみましたけど、元のperl自体はtimeoutされてシェル自体は残っていて通常にたたいたくらいの時間で処理が終了しました。
10分以上待ったのでこれ以上待ち続けるのもいやですし、もし何かの仕組みでkillされたとしてもその原因追求は困難だと思います。

ちなみにこの仕組みで大量にプロセスを残留させたら簡単にマシンをフリーズさせられそうで怖いですしね。

ヒントなどありましたらお願いします。
0967名無しさん@お腹いっぱい。2005/12/17(土) 12:38:02
ヒント: CGI禁止
0968名無しさん@お腹いっぱい。2005/12/17(土) 12:43:55
>>967
いや・・・だってそれは本末転倒だしw

普通にシェルのプロセスの親プロセスが1になるからapacheとも関係なくなる気がするから止めるとしたらどうやりゃいいんだろうと思うよ。。
0969名無しさん@お腹いっぱい。2005/12/17(土) 12:44:09
>ググッたけどなにも出てこないしね。

google に聞く前にドキュメントを読むことをすすめる。
ちゃんと書いてあるから。
0970名無しさん@お腹いっぱい。2005/12/17(土) 13:15:08
>>968
正解:CGI禁止
0971名無しさん@お腹いっぱい。2005/12/17(土) 13:42:27
>>969
いや、ごめんなさい、わかんないです。

ブラウザからcgiを開く→cgiは新しいプロセスとしてシェルを呼び出す(system関数を利用して絶対パスとしてシェルを指定)
→サーバータイムアウトでcgiのプロセス死亡→呼び出したシェルのプロセスは死亡するかと思いきや生存。

もちろんCGIの実行を許可するディレクトリ等の設定は抑えていますしsuexecの設定も読んでみましたが、直接の呼び出しでないしcgiのプロセスが死んだ後制御できるのかと不思議だしね。

もちろんユーザ自体に制限掛けてCPU使用率に制限掛けておけばいいのかと思いますがそれだとapacheに影響でそうなんでやだなあと

>>970
サーバの閉じられたイントラでの使用のみで許していただけないでしょうか?
0972名無しさん@お腹いっぱい。2005/12/17(土) 14:25:30
さじ加減の話はウザい。てめえの経験次第だ。
0973名無しさん@お腹いっぱい。2005/12/17(土) 14:58:59
もうちょっと具体的に書いてくれないと何が心配なのかさっぱり分からん。
0974名無しさん@お腹いっぱい。2005/12/17(土) 16:50:33
CGIを一般利用者に公開する以上は利用者の善意に期待するしかない
CPUとかメモリとかプロセス数とかある程度は制限出来るけど
悪意の有る悪戯や妨害には焼け石に水
管理者としては精々パトロールスクリプトを定期的に実施しておかしなプロセスを殺していくくらいしかないと思う
まあ一番の対策は利用者の身元を確実に確認してサーバ運営に支障が出たら損害賠償云々の利用規約を盛り込む事かな、
そうすればかなりの牽制になる。
0975名無しさん@お腹いっぱい。2005/12/17(土) 17:31:07
ulimitで制限する。
CPU時間で課金する。
0976名無しさん@お腹いっぱい。2005/12/17(土) 17:33:26
課金云々より悪質なCGIを弾くのが目的では
ulimitが役に立つかな?
0977名無しさん@お腹いっぱい。2005/12/17(土) 17:58:43
ApacheならRlimitってなかった? 2.xだけ?
0978名無しさん@お腹いっぱい。2005/12/17(土) 22:13:14
いた電でも嫌がらせ電話でも電話かけて(ちゃんと支払って)くれる客はいい客。
by 電話会社
0979名無しさん@お腹いっぱい。2005/12/19(月) 08:06:24
suEXEC + RLimit が簡単で効果が高いですね。
0980名無しさん@お腹いっぱい。2005/12/27(火) 09:24:14
.htaccess を晒さないために、/etc/httpd/conf/... で
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
とやっていて、おおむね期待したようにプロテクトかかる
のは確認してる。が、パスワード認証したディレクトリに
限っては、このプロテクションが動作しない。つまり、
<Directory "/var/htdoc/hondara">
Options Indexes
AuthType Basic
AuthName "Only Known Users"
AuthUserFile /etc/httpd/conf/password
Require user aitsu
Order allow,deny
Satisfy Any
</Directory>
なんて風にした状態で、ユーザ aitsu は、
http://www.andara.com/hondara/.htaccess をアクセス
できてしまう。これ、好きくない。
おいらの何処がアホなのか、教えてたも。

0981名無しさん@お腹いっぱい。2005/12/27(火) 13:45:56
> Satisfy Any
0982名無しさん@お腹いっぱい。2005/12/27(火) 14:10:41
satisfyは関係ないだろ。
FilesでDenyしたのに、DirectoryでAllowしちゃってるから、Allowされるの
あたりまえじゃん、ってことでしょ。
0983名無しさん@お腹いっぱい。2005/12/27(火) 15:35:27
喜べ>>980。おまえよりも>>982のほうがかなり重症のアホだ。
09849802005/12/27(火) 15:52:45
>>982 >>980で書いた <directory> の中に
<Files> 入れてみても、だめなんすけど。

>>983 そんな、誉められたら照れるぢゃ
ないすか。
0985名無しさん@お腹いっぱい。2005/12/27(火) 16:00:40
>980
そもそも ACLを外からhttpでアクセスできる位置におくっていうのがどうなのよ。
09869802005/12/27(火) 16:03:43
>>981
<Directory "/var/htdoc/hondara">
Options Indexes
AuthType Basic
AuthName "Only Known Users"
AuthUserFile /etc/httpd/conf/password
Require user aitsu
</Directory>
でなきゃいけなかったんすね。わかりますた。どもです。
0987名無しさん@お腹いっぱい。2005/12/27(火) 18:31:15
Satisfy ALL がデフォだからな
0988名無しさん@お腹いっぱい。2005/12/31(土) 19:42:46
kakiko test
0989名無しさん@お腹いっぱい。2006/01/01(日) 19:13:00
age
0990名無しさん@お腹いっぱい。2006/01/01(日) 19:33:44
akeome
0991 【凶】 2006/01/01(日) 20:30:28
kotoyoro
0992名無しさん@お腹いっぱい。2006/01/02(月) 16:15:02
hoshu
0993名無しさん@お腹いっぱい。2006/01/03(火) 19:01:49
993
0994名無しさん@お腹いっぱい。2006/01/04(水) 16:46:46
次スレ

Apache関連 Part8
http://pc8.2ch.net/test/read.cgi/unix/1136360783/
0995名無しさん@お腹いっぱい。2006/01/05(木) 13:56:00
1000
0996名無しさん@お腹いっぱい。2006/01/06(金) 01:43:30
996
0997名無しさん@お腹いっぱい。2006/01/07(土) 03:48:20
mod_perl使う香具師は氏ね。重い。
0998名無しさん@お腹いっぱい。2006/01/07(土) 04:10:00
1000
0999名無しさん@お腹いっぱい。2006/01/07(土) 04:31:26
999
1000名無しさん@お腹いっぱい。2006/01/07(土) 04:32:49
ぬるぽ
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。