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

Apache関連 Part8

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。2006/01/04(水) 16:46:23
HTTP ServerのApacheに関する話題を扱うスレッドです。

http://httpd.apache.org/



HTTP Serverの最新Versionは
Apache/2.2.0
Apache/2.0.55
Apache/1.3.31


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

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

Apache関連 Part7
http://pc8.2ch.net/test/read.cgi/unix/1108649446/
Apache関連 Part6
http://pc5.2ch.net/test/read.cgi/unix/1084829611/
0123名無しさん@お腹いっぱい。2006/01/30(月) 13:17:16
テストなら80じゃなくてもいいんでは。
0124名無しさん@お腹いっぱい。2006/01/30(月) 13:30:07
それこそ、開発中はWindowsでテストして
大体完成してから動かす前にrootで立ち上げてテストするだけでも十分なような
0125名無しさん@お腹いっぱい。2006/01/30(月) 13:53:08
>>124
この文脈でなぜWindowsが出てくるんだよ。
UNIX使いは普通、Windowsなんて持ってないだろ。

>>122 それは inetdでもdaemonでも同じ。
0126名無しさん@お腹いっぱい。2006/01/30(月) 17:35:10
apacheを一定時間で再起動できるコマンドってないですよね?
0127名無しさん@お腹いっぱい。2006/01/30(月) 17:40:02
crontab
0128名無しさん@お腹いっぱい。2006/01/30(月) 17:43:32
>>126
なんでそんなことしたいの?
0129名無しさん@お腹いっぱい。2006/01/30(月) 18:08:19
>>127
ありがとうございます。

>>128
ちょっと必要だったんですよね。
0130名無しさん@お腹いっぱい。2006/01/30(月) 19:40:36
>>129
その「ちょっと」が知りたいんだと思うんだが(俺も知りたい)
MaxRequestsPerChildでは駄目なのかとか、何らかの設定変更を
行った後やApacheが死んでる時にではなく、"定期的"に再起動を
掛けたいという理由って結構珍しいのではないかな。
0131名無しさん@お腹いっぱい。2006/01/30(月) 23:52:36
メモリリークで再起動したいってハナシはヨクアルベ
0132名無しさん@お腹いっぱい。2006/01/31(火) 00:01:10
Apache ではないなぁ。
0133名無しさん@お腹いっぱい。2006/01/31(火) 00:41:18
ログ切るとかでなくて?
0134名無しさん@お腹いっぱい。2006/01/31(火) 00:53:11
>>131
MaxRequestsPerChildでは駄目なの?
0135名無しさん@お腹いっぱい。2006/01/31(火) 02:35:34
ログ切るのに graceful は、やってるな
あと、スクリプト書くのが面倒で、/usr/local/etc/rc.d/apache2.sh restart
スクリプト動作用に複数起動させてて、ついでに ssl もオープンしてて
3個もシグナル送るのめんどいじゃん・・・
0136名無しさん@お腹いっぱい。2006/01/31(火) 03:33:24
logrotate…
0137名無しさん@お腹いっぱい。2006/01/31(火) 15:36:03
俺が知ってるところは、毎日再起動してるよ。
はっきり言って意味無いと思うんだが。。
俺が管理してる奴だと、3,4ヶ月動かしっぱなしでも問題ないし。

gracefulは再起動じゃないよね。

>>136
apacheに限れば、rotatelogsかな。
俺はmv & graceful派だが。
0138名無しさん@お腹いっぱい。2006/01/31(火) 23:12:36
>>136
VirtualServer 使ってて、ログファイルも10個ぐらいあるんじゃー
logrotate って調べてみたけど、時間指定で10個いっぺんに切れるのかな?
切り替えする時に、シグナルを送るのは一回にしたいなぁ・・とか

rotatelogs もついでに調べてみたけど別プロセス動くのかな、これ
うざー
やっぱり mv & graceful ですな
0139名無しさん@お腹いっぱい。2006/02/01(水) 02:39:07
>>138
logrotateはいろんなログをまとめてやるのに便利なだけで、
動作は自分で好きに書く。
0140名無しさん@お腹いっぱい。2006/02/01(水) 06:52:57
そろそろOSは独自のHTTPDを提供するべきなんじゃないのかな?
0141名無しさん@お腹いっぱい。2006/02/01(水) 07:44:14
>>140
Linuxってそれやってなかったっけ?
AcceptFilterでもいいのかな?
0142名無しさん@お腹いっぱい。2006/02/01(水) 11:06:17
>>140
tuxとか?

# 前置きなしに「そろそろ〜?」は
# ニャ顔風でいやらしさ満載だ(w
0143名無しさん@お腹いっぱい。2006/02/01(水) 16:00:21
Windowsみたいにか
0144名無しさん@お腹いっぱい。2006/02/01(水) 16:33:58
epollとAcceptFilter使えてれば、
OS独自のhttpdなくても大丈夫なんじゃないか?
0145名無しさん@お腹いっぱい。2006/02/02(木) 04:08:21
Suse Linuxに初めてさわるのですが、apacheのhttpd.confの構成がよくわかりません。
複数に分かれたのでしょうか?新しい構成を解説してあるサイトか何かあれば教えてください。
0146名無しさん@お腹いっぱい。2006/02/02(木) 11:27:17
httpd.conf読め。
最後の方に各confの説明がある。
0147名無しさん@お腹いっぱい。2006/02/02(木) 18:38:31
IEなどで同時接続数というのがありますが、これを2以上にすると、一つ目の接続は問題ないのですが、
二つ目の接続の方が、読み込まれずタイムアウトしてしまいます。つまり、画像の場合、×が表示されてしまいます。
×の表示が出た画像の上で、右クリックをして画像の表示を選択すると、読み込まれます。
operaやfirefoxでも同じ現象が出ます。また他のパソコンでも同様になることを確認したので、
問題はサーバの方にあると思われるのですが、どこを調べたらよいのかわかりません。
他の接続、例えばsshやpop3などは2つ以上コネクションを張れるので、
apacheの設定に問題があるのではないかと疑っているのですが、具体的にどの設定をいじればよいのかわかりません。
httpd.confの設定はほぼデフォルトのままで、mod_limitipconnは使用していません。
osはfedora core4です。apache以外の可能性も含めて助言いただければ幸いです。
01481472006/02/02(木) 18:45:12
あと、アクセスログですが、タイムアウトした方は、エラーも含めて何も記録されていません。
01491472006/02/02(木) 19:00:32
今、irvineで接続してみたのですが、接続できない場合には


スレッドを開始します
example.comが見つかりました
example.com(xxx.xxx.xxx.xxx):80にconnect失敗しました
ソケットエラー
5 秒待機します


のようなエラーが出ます。必要な情報が不足しているかもしれませんが、よろしくお願いします。
0150名無しさん@お腹いっぱい。2006/02/02(木) 19:04:42
>apache以外の可能性も含めて
君の鯖じゃないのか?
01511472006/02/02(木) 19:54:56
自己解決しました
0152名無しさん@お腹いっぱい。2006/02/02(木) 20:00:39
>>147
何が原因だったの?
0153名無しさん@お腹いっぱい。2006/02/03(金) 01:22:07
>>99 はもういないの?

inetdで呼び出されるのがよくてdaemonがだめな理由がよくわからんが、
ローカルでテストしたいだけならhttpd.confの219行目を
Listen 80 -> Listen 127.0.0.1:80
が一番簡単なのでは?
0154名無しさん@お腹いっぱい。2006/02/03(金) 09:52:35
>>153
それだとdaemonと変わらない。
セキュリティーの問題じゃなく、ローカルマシンはクライアント用だから、
不要なプロセスを止めて軽くしたいのが目的らしい。
で、apache-1.3系に戻すことで解決したらしいが。
0155名無しさん@お腹いっぱい。2006/02/03(金) 12:44:34
inetd起動って環境にやさしいよね。
俺の常用マシンは sshdも sendmailも inetd起動だよ。
apacheはなんで inetd起動、捨てたんだろうね。
また、inetd起動できるようになるといいね。
0156名無しさん@お腹いっぱい。2006/02/03(金) 14:57:58
俺のLunuxはカーネルもinetd起動だから環境にやさしいです。
0157名無しさん@お腹いっぱい。2006/02/03(金) 15:03:33
>>155 >>105 参照のこと
0158名無しさん@お腹いっぱい。2006/02/03(金) 15:16:03
>155
inetdでメモリに優しいことは需要としては極少数派で、開発リソースをかける意味が無いから。
0159名無しさん@お腹いっぱい。2006/02/03(金) 15:27:36
>>155
sshd を inetd 起動にすると接続ごとに鍵作り直すから
かえってつらくない?
0160名無しさん@お腹いっぱい。2006/02/03(金) 15:29:43
それ以前に池沼は生きてる意味無いから。
0161名無しさん@お腹いっぱい。2006/02/03(金) 16:03:25
>>158
なんだ。それだけの理由なのか。
じゃあ、inetdが使えるならそれはそれで意味があることだよね。
潜在需要は結構あるはず。
0162名無しさん@お腹いっぱい。2006/02/03(金) 16:17:39
それ以前に池沼は生きてる意味無いから。
0163名無しさん@お腹いっぱい。2006/02/03(金) 16:21:03
>>161
"結構"と言えるだけあれば、サポートが外されてないと思う。
コンパクトなhttpdなら少数のやり手如何でどうにでもなるけど
apahceはもうそんな規模ではないよ。
0164名無しさん@お腹いっぱい。2006/02/03(金) 16:21:12
>>161
需要ないと思うよ。
0165名無しさん@お腹いっぱい。2006/02/03(金) 16:23:01
apacheよりも規模が大きいと思われる sendmailですら、依然 inetdに対応してますが。
0166名無しさん@お腹いっぱい。2006/02/03(金) 16:26:02
だから?
あなたがinetd対応patchを書くか、書ける人に金だせばいいのでは?
0167名無しさん@お腹いっぱい。2006/02/03(金) 16:33:52
規模ってどうやって計るんだろ。
0168名無しさん@お腹いっぱい。2006/02/03(金) 16:51:19
inetd の利点はinetdが無事なら落ちても大丈夫なことw
0169名無しさん@お腹いっぱい。2006/02/03(金) 16:56:54
inetd対応が必要な人が、開発してる人を説得するしか(`・ω・´)
納得できれば、放っておいても入るんじゃないかな。
0170名無しさん@お腹いっぱい。2006/02/03(金) 17:01:31
少なくとも開発陣に inetd 経由で使ってる人間がいなかったんだろう。
どうしようもない。
0171名無しさん@お腹いっぱい。2006/02/03(金) 17:08:27
Apache 以外を使うって手はないの?
0172名無しさん@お腹いっぱい。2006/02/03(金) 17:20:17
ある。そしてスレ違い。
0173名無しさん@お腹いっぱい。2006/02/03(金) 17:25:25
馬鹿は死ななきゃ治らない
0174名無しさん@お腹いっぱい。2006/02/03(金) 18:01:42
ttp://blog.bz2.jp/archives/2006/01/yahoo_apache.html

こんなの見付けた。
0175名無しさん@お腹いっぱい。2006/02/03(金) 18:06:32
・スレッドは使用しない
OSがFreeBSDだからなw スレッドなんか使うと即死だ。
・HTTPリクエストをカーネル側でバッファ
それはTuxみたいな奴か?単にバックログ増やしただけだったらワロス
・コアダンプはさせないようにする
2はデフォルトでコアダンプなんかしないわけだがw

Yahoo終わったな
0176名無しさん@お腹いっぱい。2006/02/03(金) 18:12:23
コアダンプするだろ2も。
FreeBSD貶してるところから見るとLinuxしか知らないらしいw
しかしYahooも最初にやる事がServer:ヘッダの抑止とは厨っぷりが知れるな
0177名無しさん@お腹いっぱい。2006/02/03(金) 20:00:49
ある程度のトラヒックがある場合、少しでも送信バイト数
を節約したいっていうのがあるから、積極的にヘッダを削
減します。

0178名無しさん@お腹いっぱい。2006/02/03(金) 20:03:09
on tcpserver...
0179名無しさん@お腹いっぱい。2006/02/03(金) 22:36:50
Google accf_http
0180名無しさん@お腹いっぱい。2006/02/03(金) 22:37:55
っていうか175がYahooよりもまったく技術力が高そうに見えないのに自爆しにきているのが面白い。
0181名無しさん@お腹いっぱい。2006/02/03(金) 22:45:32
>>177
「トラヒック」って・・・
F行を発音できない、「ファミコン」を「ハミコン」という老世代の方ですか?
0182名無しさん@お腹いっぱい。2006/02/03(金) 23:03:32
そーゆー表記もあるでーよー
>>180
激同
0183名無しさん@お腹いっぱい。2006/02/03(金) 23:10:43
>>177はNTT職員
0184名無しさん@お腹いっぱい。2006/02/03(金) 23:15:27
このビルジング内にあるオージオ機器のヒューズが飛んだので、
ハードジスクからレストアしてください。
0185名無しさん@お腹いっぱい。2006/02/03(金) 23:35:09
>>181
ネットワーク屋ではトラヒックが普通
0186名無しさん@お腹いっぱい。2006/02/04(土) 00:10:46
酔っ払った虎がおりました。
虎曰く、「虎ヒック…」

おあとがよろしいようで…
0187名無しさん@お腹いっぱい。2006/02/04(土) 00:36:32
虎は日本語喋りません。
0188名無しさん@お腹いっぱい。2006/02/04(土) 00:36:43
回線屋の用語だから、別に変ではないよなぁ。
0189名無しさん@お腹いっぱい。2006/02/04(土) 00:37:32
回線屋のドカチン用語だよ。
変だって気が付かないからドカチンなんだよねw
0190名無しさん@お腹いっぱい。2006/02/04(土) 01:09:31
もしかしたらもの凄く簡単なことなのかもしれませんが、質問させてください。

example.jp/

へのアクセスの場合に、パソコンからは example.jp/index.html を表示させ、
携帯からは example.jp/i/ へリダイレクトさせる方法は、
Apache の設定のみで可能でしょうか?

・アクセス元関係無しのリダイレクト
・携帯以外はアクセス拒否

の二つは個別で設定出来るのは確認したのですが、
自分のやりたいことはその組み合わせで実現させられるのではないかと
思っていますが、そういった組み合わせを解説しているサイトがなく、
試行錯誤しましたが、自分では解決しそうにありません。

ブログコンテンツなので、アクセス制御の CGI を間に
挟むことは避けたい希望があるので、どうにか Apache の設定のみの
手法を探しています。

ご存じの方、よろしくお願いします。

環境は Apache 1.3.34 です。
0191名無しさん@お腹いっぱい。2006/02/04(土) 01:16:25
よく知らんけど、
携帯かどうかの判断ってどうやってるの?
0192名無しさん@お腹いっぱい。2006/02/04(土) 01:23:37
・アクセス元関係無しのリダイレクト ← Redirectディレクティブ?
・携帯以外はアクセス拒否 ←SetEnvIf or BrowserMatch と Deny?

Redirectディレクティブは環境変数使えないからこの組み合わせは無理かな。
まあかなり変なやり方だけど、SetEnvIf or BrowserMatch と Deny と ErrorDocument で出来なくもないかな。

ErrorDocument 403 http://example.jp/i/
BrowserMatch ○○ phone
Deny from env=phone


まあ普通はmod_rewriteだな
0193名無しさん@お腹いっぱい。2006/02/04(土) 02:03:37
>>191
各キャリア公開の IP アドレスを使っての allow/deny です。

>>192
・アクセス元関係無しのリダイレクト ← Redirectディレクティブ?
・携帯以外はアクセス拒否 ←SetEnvIf or BrowserMatch と Deny?

BrowserMatch 以外はほぼその通りです。
やはり、変なやり方だったんですね。

もう一度 mod_rewrite のリファレンスに目を通してみます。
ありがとうございました。
0194名無しさん@お腹いっぱい。2006/02/04(土) 02:17:46
失礼しました。
Redirect と mod_rewrite は別物だったんですね。
一から勉強し直してきます。

アドバイスありがとうございました。
0195名無しさん@お腹いっぱい。2006/02/04(土) 19:47:17
2.2.0と2.0.55、
どっちがお勧め?
公式のアナウンスではどっちもstableになってるし
何を基準にバージョンを変えればいいのか分からんです
0196名無しさん@お腹いっぱい。2006/02/04(土) 20:32:41
両方ともStableだから2.2.0にしとけ

だた、両者はモジュールの互換性はバイナリレベルではない
再コンパイルが必要

この意味が分からないなら2.0.55のほうがいいかもしれない
0197名無しさん@お腹いっぱい。2006/02/05(日) 02:30:12
mod_suid2使いたいのですが、
apacheをrootで起動する必要があり、ぐぐってもこれを理由に使用を躊躇してる
人ばかり。
リスクが上るのは分かるんですが、
実際apacheをrootで起動するのってどれくらい危険度が上るものでしょうか?
apacheのセキュリティホールを常に埋めるように注意しておけば大丈夫?

あと、このmod_suid2を改造したmod_ruidというのがあるみたいなんですが、
ぐぐっても情報は0に近いです(日本語意外でさえ)
識者の方、コメントきぼんぬ
0198名無しさん@お腹いっぱい。2006/02/05(日) 02:38:45
ちょっとしたCGIのミス、例えば読み出しファイルの指定時に"../"を処理し忘れていた時などに
/etc/shadowを外部から読み出せる可能性が出てきたりするわけだけど
それでも平気なら。
0199名無しさん@お腹いっぱい。2006/02/05(日) 03:09:59
>>198
なんか違くない? コンテンツ取得時には setuid 済みです。

>>197
setuid を実行するまでの間、root 権限を持っていることが
問題なわけでしょ。例えばだけど、HTTP ヘッダを解釈して
apache が色々な判定処理をするわけじゃん。文字列の処理ってのは
バグでバッファオーバーフローとか起こす可能性が高いわけよ。
もっと具体的な例で言うと Host: ヘッダの解釈にバグがあったと
しよう。これに exec /bin/sh ができるように悪意のあるコードを
押し込むと、そのまま簡易 telnet に早変わりですよと(w

これらの問題は、同時に使用するモジュールの影響も受けるので、
単に apache のみを最新にしてれば大丈夫ってわけでもない。
02001992006/02/05(日) 13:02:42
肝心なことを忘れてた。簡易 telnet はログインも必要とせずに
いきなり root で /bin/sh が使えるということです。

# バッファオーバーフローなんかで /bin/sh を起動されて
# 侵入されるところまでは、別に root で動作してなくてもあり得ることだ罠。
0201名無しさん@お腹いっぱい。2006/02/07(火) 03:49:23
LDAPでwebdavのユーザー認証管理はできますか?
0202名無しさん@お腹いっぱい。2006/02/07(火) 08:13:49
はい
0203名無しさん@お腹いっぱい。2006/02/09(木) 02:49:59
騙されてはいけません。
0204名無しさん@お腹いっぱい。2006/02/09(木) 09:29:47
はい
0205名無しさん@お腹いっぱい。2006/02/09(木) 09:57:31
はいじゃないが
0206名無しさん@お腹いっぱい。2006/02/09(木) 09:59:13
いいえ
0207名無しさん@お腹いっぱい。2006/02/09(木) 10:33:04
ディセンド
0208名無しさん@お腹いっぱい。2006/02/09(木) 11:26:17
あたまさげろ
0209名無しさん@お腹いっぱい。2006/02/09(木) 15:58:00
m(_ _)m
0210名無しさん@お腹いっぱい。2006/02/09(木) 18:23:16
山だぞ山
0211名無しさん@お腹いっぱい。2006/02/09(木) 19:34:24
今は谷でつ
0212名無しさん@お腹いっぱい。2006/02/09(木) 20:52:03
         _,,..,,,,_
        ./ ,' 3  `ヽーっ 
        l   ⊃ ⌒_つ
         `'ー---‐'''''"

       荒巻スカルチノフ
0213名無しさん@お腹いっぱい。2006/02/10(金) 01:43:03
virtualhostでもuserdirでアクセスできてしまうけど、
これを禁止する方法ないでしょうか?

例:
ttp://localhost/~user/
ttp://virtualhost/~user/
どっちでもアクセスできてしまうのです
mod_rewriteで設定しかないでしょうか?

あと疑問ですが、mod_rewriteってかなりパフォーマンス落ちそうだけど
httpd.confにmod_rewrite関係100行くらい記述したとして、
影響がある(遅くなる)のはmod_rewriteが機能するとき
(RewriteRuleに当てはまるとき)だけ?
それともapacheの全体の動作自体重くなるのでしょうか?
0214名無しさん@お腹いっぱい。2006/02/10(金) 03:04:22
mod_userdirをロードしなきゃいいだけでは?
0215名無しさん@お腹いっぱい。2006/02/10(金) 03:12:02
localhostもVirtualHostで記述して、そこでUserDirかな。
0216名無しさん@お腹いっぱい。2006/02/10(金) 08:30:30
>>213
そういうボトルネックがあるかどうかを調べるために
ab というツールが付属しているのでは?

mod_rewrite とかいう以前に、モジュール構成やら
テンコモリライブラリ等のせいもあって、apache は
今となっては大して早いサーバではないよ。速度的に
問題があると思ったら、クラスタにしてカバーする
とか考えた方がいいと思うよん。それでも「使いやすい」
というすごいメリットが apache にはあるんだしね。

とは言え、必要十分な速度はありますが。
0217名無しさん@お腹いっぱい。2006/02/10(金) 09:36:56
>>152
駄メルコのルータにアタックブロックという機能があるのですが、
これが、一度に複数の接続要求があると、攻撃と見なしてはじいていたようです。
この機能をオフにしたら問題は解消されました。
0218名無しさん@お腹いっぱい。2006/02/10(金) 09:48:17
>>217
うはwwwやっぱりルータは自作に限るね
0219名無しさん@お腹いっぱい。2006/02/10(金) 09:52:18
<VirtualHost virtualhost>
UserDir disabled
</VirtulaHost>

自分がこれまで見た mod_rewrite の利用例のうち、
mod_rewrite でないと解決できないものは極めて稀。
0220名無しさん@お腹いっぱい。2006/02/11(土) 01:38:21
mod_rewrite について質問させてください。
現在下記の内容を httpd.conf に記述しております。
------------------
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteLog "logs/rewrite_log"
  RewriteLogLevel 0

  RewriteCond %{HTTP_HOST} ^host.explet.com(.*)
  RewriteRule ^(.*)?$ https://host.explet.com:444$1 [R]

  RewriteCond %{HTTP_HOST} !www.explet.com$
  RewriteRule ^/(.*)?$ http://%{HTTP_HOST}/$1 [L,R]
</IfModule>
--------

上記の設定で、
https://host.explet.com/    左記へアクセスすると
https://host.explet.com:444/  へ変換されるのですが、

GETでアクセスする分には問題ないのですが、
POSTでアクセスした場合、パラメータが全て破棄されております。

例えば hoge.html 内に
<form action="https://host.explet.com/hoge.cgi" method="post">
・・・・
</form>

と記述し、submit しても key=value が一切入ってきません。

mod_rewrite の設定で 何か問題があるような気がするのですが、
お気づきの箇所等ありましたらご教授下さい。
02212202006/02/11(土) 01:41:40
環境が抜けておりました。
すいません。
-----
OS : CentOS4.2
Apache/2.0.52
0222名無しさん@お腹いっぱい。2006/02/11(土) 01:58:55
>>219
でもものによっては記述がきちゃなくなるんだよな。
それでも解決できるから、俺はmod_rewriteはいまだに使えない。
■ このスレッドは過去ログ倉庫に格納されています