Apache関連 Part5
■ このスレッドは過去ログ倉庫に格納されています
0001攻撃ヘリAPACHE
NGNG前スレ Apache関連 Part4
http://pc.2ch.net/test/read.cgi/unix/1040312647/
Apache関連サイトへのリンクは >>2-5 あたり
0458名無しさん@お腹いっぱい。
NGNGWebProg板のほうがいいと思います。
0459名無しさん@お腹いっぱい。
NGNGAddHanderの行がキモいとか、
Premature end of script headers: xxx.cgi を訳してみとか、
#!/usr/bin/perl -w や perl -- にしてみとかレスついて終わりだけどね。
0460名無しさん@お腹いっぱい。
NGNG0461449
NGNGやりたいことは http://foo.bar.com/buz/ を
/var/www/html/foo/buz にマッピングしたいだけなんですけど、
VirtualDocumentRoot /var/www/html/%1
だと、http://bar.com/ でアクセスしたときに /var/www/html を
見に行かないんです。
VirtualDocumentRoot って<Virtualhost> でせっているるもんなんでしょうか?
0463449
NGNGDocumentRoot "/var/www/html"
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.bar\.com$
RewriteRule ^/$ /%1 [R]
と書いて解決したっぽいです。[R]ははずして良いかもしれないですけど。
mod_vhosts_alias は DocumentRoot を変更してしまうので、
今回の件には合いませんでした。
# ひとりスレ消費
0464名無しさん@お腹いっぱい。
NGNGperlのパスがおかしい。
改行コードがおかしい。
のどちらかだな。
0465457
NGNG#!/usr/bin/perl
print "Content-type:text/html\n\n";
print "<HTML>\n";
print "HelloWorld!\n";
print "</HTML>\n";
which perlの結果
/usr/local/bin/perl
んん?以前は/usr/bin/perlだったのに。
ということでパスを#!/usr/local/bin/perlに変更してhttpdをrestart
結果 Error 500
ログにはあいかわらずPremature end of script headers: xxx.cgiとの表記
cgiのスクリプトヘッダのが未成熟とは、どういうことなのでしょうか?
一応#!/usr/local/bin/perl -wにも変えてみましたが、ダメでした。
0466名無しさん@お腹いっぱい。
NGNGWebProg 板のそれっぽいスレに行って過去ログを読んでこい、と。
くれぐれもそこで質問はしないように。読むだけで解決するはずなので。
0467名無しさん@お腹いっぱい。
NGNGなぜ>>459の最後をやらないのかと小一時間・・。
どうせそのスクリプトコマンドラインから実行しても動かないんだろ。
0468457
NGNG解決方法を書き残したいのですが、suEXECのリネームやらchownやらいろいろやった
挙げ句に動かず、ふとls -lをやってみると、バックアップやら何やらやっている
うちにアクセス権が644になってて、755に変えたら動きました。
なので結局どこに問題があったのかわかりません(457の時点では755になってたので)。
どうもお騒がせしました。
>>467
すいませんそれはトラブってからまず一番最初に試してみた方法なんです。
ちゃんと書いておけばよかったです、すいません。
0469こば
NGNG携帯用のダウンロードの仕組みでサーバー側に以下の設定をして、
ファイル名でアクセスしたら、CGIをキックする仕組みを作ろうとしているのですが
IISではできたのですが、APACHEだと以下の設定をしても、ファイル名の方に
アクセスがいってしまいます。なにか方法はあるのでしょうか?
<Directory "c:/top_dir/cont">
AllowOverride ALL
Order allow,deny
Allow from all
Action image/png /probe/downl.cgi
Script GET /probe/downl.cgi
</Directory>
0470名無しさん@お腹いっぱい。
NGNGwebprog 板言ってくれ。
0471名無しさん@お腹いっぱい。
NGNG0472名無しさん@お腹いっぱい。
NGNGここにいるのは役に立たないクズばかりですね。
もういいです。
0473名無しさん@お腹いっぱい。
NGNG0474名無しさん@お腹いっぱい。
NGNG0475名無しさん@お腹いっぱい。
NGNG自宅鯖板で一時期流行ってたせりふだ
気にするな
0476名無しさん@お腹いっぱい。
NGNG0477名無しさん@お腹いっぱい。
NGNGRewriteRule ^/(hitokoto|tanka|outlook|blog|info)/?$ /index.php?cat=$1
とすることにより、
http://example.com/hitokoto/ ⇒http://example.com/index.php?cat=hitokoto
http://example.com/tanka/ ⇒http://example.com/index.php?cat=tanka
(以下略)
としたいと思ってます。
で、
http://example.com/index.php?cat=tankamerumaga
というURIを要求されたら、『上記ルールにはあてはまらない』として、
そのまま表示してほしいのですが、
なぜか、http://example.com/index.php?cat=tanka の内容を表示してしまいます。
なぜなのでしょうか?ヒントすらつかめず、雲をつかんでるような状態です。
どなたかおわかりのかた、教えていただければ幸いです。
0478名無しさん@お腹いっぱい。
NGNG別<directory>で公開しているチャットcgiにアクセスできない人多数
なんて境遇の人いませんか?
以前、ディレクトリ毎にコネクション数を制限するモジュール(名前忘れた)は
頑張ってソースいじくってもダメだったし。
0479名無しさん@お腹いっぱい。
NGNG0480名無しさん@お腹いっぱい。
NGNGウプするやつよりダウソする奴の方が多いんだからダウソはcgi
使っちゃ駄目でしょ?
あと、接続数がいっぱいにって、システムリソースの問題なのか
アパッチの問題なのかきり分けた?
簡単になんとかするなら、イカとかのリバースプロクシつかって
アパッチをとっとと解放してやればいいんじゃないの?
0481名無しさん@お腹いっぱい。
NGNG接続数はシステムリソースとかそんなんじゃなくて
httpd.conf内のmaxclientとか上げれば解決するけど
一人頭の帯域が狭くなる。リバースプロクシも同様。
ということで、特定ディレクトリへの接続数制限というのに
行き着いたわけなんですが。
自宅で面白おかしくやってる鯖なので
アクセス数の多いファイル消してしまえば解決なのですが
せっかく、課題ができたのだからとがんばっております
0482名無しさん@お腹いっぱい。
NGNG帯域を確保したいから、そのために接続数を縛りたいってことね。
なら 479が言うように、ポート分けて専用のhttpd上げれば?
読み込むモジュールも絞って軽めにするとか、うpろだ用は1.2x使うとか。
# 1.2xはメモリ檄軽なので用途によってはいまだ有効。
0483名無しさん@お腹いっぱい。
NGNG0484名無しさん@お腹いっぱい。
NGNG0485名無しさん@お腹いっぱい。
NGNG0486名無しさん@お腹いっぱい。
NGNGこれ使ったんですよ。俺の腕では無理でしたが、機能としてはバッチリでした
>>479>>428
ポート開けってURLの後ろに「:8081」つけてアクセスしてね♪、ってことだよね?
むぬ・・・
mod_throttleはやりたい事とちがうし
0487名無しさん@お腹いっぱい。
NGNGURLの後ろに「:8081」とか適当なポートつけて
0488名無しさん@お腹いっぱい。
NGNG> ポート開けってURLの後ろに「:8081」つけてアクセスしてね♪、ってことだよね?
べつに手でうつわけじゃあるまいに
0489名無しさん@お腹いっぱい。
NGNGRewriteEngine 自体は動いているのですが、ルールの設定がマズいらしく、
ループしてしまいます。
/~user/foo\.html
→ /~user/private/wrapper.cgi/foo.html
/~user/private/.*
/~user/private/wrapper\.cgi/.* に直アクセス
→ 403 Forbidden
…のような事をしたいんですが、可能でしょうか?
0490名無しさん@お腹いっぱい。
NGNGRewriteCond ${THE_REQUEST} private/
RewriteRule ^.*$ - [F,L]
みたいな感じで。
0491名無しさん@お腹いっぱい。
NGNGリーバスプロ串思い付いたなら,特定ディレクトリだけにそれを仕掛けりゃいいだろうに。
おまいさん,なんか抜けてる。
0492名無しさん@お腹いっぱい。
NGNG0493名無しさん@お腹いっぱい。
NGNG特殊な要望があるなら自分で書けばいいだけ。
0495名無しさん@お腹いっぱい。
NGNGついでにload avarageもログ取るよろし
0496名無しさん@お腹いっぱい。
NGNGログを表計算ソフトに読み込め
あとはわかるだろ(笑
0497名無しさん@お腹いっぱい。
NGNGmrtgでグラフにすればいいじゃん。
0498名無しさん@お腹いっぱい。
NGNGApache のログから、帯域にどの程度負荷が掛かったかは分からん。
80番以外のポートにアクセスがあった場合、ログには残らないからな。
0499名無しさん@お腹いっぱい。
NGNG転送量が書いてあるっしょ。
それに、Apacheへのアクセスがどの程度回線に負荷を与えたかって事で
回線自体の負荷を知りたいとは書いてないだろ。
0500名無しさん@お腹いっぱい。
NGNGって言ったら、普通はApache以外も差すだろう。
0501名無しさん@お腹いっぱい。
NGNG0502名無しさん@お腹いっぱい。
NGNG普通、帯域の負荷をApacheの転送量から知ろうとしないだろ。
0503名無しさん@お腹いっぱい。
NGNGhttpd を落してもパイプ先のプログラムが生きています。
これはバグでつか? 漏れの自作プログラムがクソなのかと
思いましたが、rotatelogs でも同様ですた。
試した OS は FreeBSD 4.9R です。
# ちなみに apache-1.3.29 では問題なく死んでくれます。
0504名無しさん@お腹いっぱい。
NGNGapacheしか運用してないかも
0505名無しさん@お腹いっぱい。
NGNG0506名無しさん@お腹いっぱい。
NGNG回線の利用状況はまったく異なるわけだが、apache のログからはそんなことはわからん。
ログから調べようとするのがそもそもの間違い。
0507名無しさん@お腹いっぱい。
NGNGどうせ5分平均とかで見るんだから変わらん。
0508名無しさん@お腹いっぱい。
NGNGapacheのログにある転送量って,Content-Lengthじゃなかったっけ??
0509名無しさん@お腹いっぱい。
NGNGんなんことない、もしそんな事まじで思ってるなら・・・
例えば10Mくらいのデータを50人が同時にダウンロードするとき
クライアントやサーバの回線が細ければ時間がかかるが
終わった時間で集計するとその時間帯に500Mが流れた事になるぞ
0510名無しさん@お腹いっぱい。
NGNG適材適所って言葉を知らんのか。
0511名無しさん@お腹いっぱい。
NGNG0512名無しさん@お腹いっぱい。
NGNG持っていかれて帯域を食いつくしちゃうことがあるのですが、
これを制限するにはどうしたらよいでしょうか?
そういうクライアントにはある程度のウェイトさせたいたのです。
0513名無しさん@お腹いっぱい。
NGNGmod_limitipconnで特定のIPからの最大接続数を限定するしか思いつかない。
特定のAgentをdenyする方法は偽装で簡単に抜けるから。
0514512
NGNG0515512
NGNG0516名無しさん@お腹いっぱい。
NGNGmod_throttle とか mod_bandwidth あたりはどうなのかな。
できたらやり方教えてくれ。
0517名無しさん@お腹いっぱい。
NGNGhttp://dominia.org/djao/limitipconn.html
0518512
NGNGインストールは簡単にすみました。現在動作を観察中です。
0519512
NGNGどうすればチェックできるのかわからんという罠。
0520名無しさん@お腹いっぱい。
NGNGapache をインスコしたディレクトリの bin を見てみる。ab という
素敵なツールがあるじゃないですか。
man -M /usr/local/apache/man ab
# どうせ MANPATH を通してないだろうから -M なのさ。
0521名無しさん@お腹いっぱい。
NGNG0522名無しさん@お腹いっぱい。
NGNG0523名無しさん@お腹いっぱい。
NGNGアクセスしてくるIPが国内からか海外からかで、
表示するコンテンツを変えるにはどうしたらよいですか?
htaccessでIP拒否&403エラー時のページ指定だと、
ふつうの403エラーも同じになっちゃうし
何かいい方法ってあるでしょうか?
さがしても見つからなかったの クスン、、
0524名無しさん@お腹いっぱい。
NGNG自分のapacheにはvirtual domainがいくつもあり、それぞれ
のドメイン1つにつき1つのアクセスログを集計結果ページを
作成したいと思っているのですが、方法がわかりません・・・。
ドキュメントを読んだかぎりでは、
OUTPUT example1.com /usr/local/example1/...
OUTPUT example2.com /usr/local/example2/...
みたいにして、出力を分けることは分かったのですが、
INPUT の時にどうするのかが・・・。
ちなみにドメインごとにアクセスログ・ファイルは分けて
あります。
0525名無しさん@お腹いっぱい。
NGNGIPアドレスが国内か海外かってのを判別するのがまず困難かと思うが・・・
ちょっと違うけど、コンテントネゴシエーションとかは?
ttp://httpd.apache.org/docs-2.0/content-negotiation.html
# もっといい方法あったらフォローよろしく>偉い人
0526名無しさん@お腹いっぱい。
NGNGapacheのマニュアルの構成みてみ。
エラードキュメントに使えるかどうかは知らないが。
0527名無しさん@お腹いっぱい。
NGNG0528名無しさん@お腹いっぱい。
NGNGttp://www.mtl.t.u-tokyo.ac.jp/~nminoru/memo/ip-address/what_country_from.html
これとmod_rewrite使うとかかな。
.htaccessが大きくてパフォーマンス落ちそうな気がするけど。
0529523
NGNGttp://www.nic.ad.jp/ja/dns/jp-addr-block.html
ttp://www.blackholes.us/zones/country/japan.txt
↑この辺のIPリスト使ってみようとか思ってます。
コンテントネゴシエーション、MultiViewsなんてのもあるんですね。
知りませんでした。勉強になるなぁ。ありがとうございます
http://httpd.apache.org/docs-2.0/urlmapping.html#rewrite
http://httpd.apache.org/docs-2.0/urlmapping.html#documentroot
↑教えていただいたURLやらから漁ってみたらこんなのありました
ずばり528さんの言うmod_rewriteでいけるかも。わーい
でもそうかー、やっぱり.htaccess大きいとパフォーマンス落ちるんですね
httpd.confとかに直接かけば速かったりするのかしら
0530名無しさん@お腹いっぱい。
NGNGconf に直接書いた方が圧倒的に早いに決ってますが。
ついでに、できるなら AllowOverride None がなお良い。
0531名無しさん@お腹いっぱい。
NGNGどう記述すればいいんですか?
0532名無しさん@お腹いっぱい。
NGNG0533名無しさん@お腹いっぱい。
NGNGSegmentation faultなどの場合にcore dumpさせる手順は、以下でよい
でしょうか?
1. mod_prctlを組込む
2. CoreDumpDirectoryをhttpd.confに設定し、そのディレクトリに
childプロセスがcoreファイルを作成できるようにする。
3. /etc/profileにあるulimitの設定を書き直し、ulimit -S -c unlimited
にする。
カーネルは全てのマシンが2.4.20なんですが、マシンによってcoredumpする
のとしないのがあって、原因をつかみかねています。coredumpしてくれない
マシン上でも、setuid-rootな実行ファイルをCで書いて頭のほうでprctl()を
呼ぶとちゃんとrootでcore dumpするので、OSカーネルそのものの問題では
ないと思います。とするとあとはApacheの側の問題だと思うのですが、どこを
いじってよいのか分かりません。Apacheのバージョンは1.3.29です。
0534名無しさん@お腹いっぱい。
NGNG2. は /var/tmp にでも設定したら? ディレクトリに書き込み権限があるように。
しかも 3. は関係ないと思うぞ。limits -U www とかしてみる。
0535533
NGNGCoreDumpDirectoryは、「childプロセスがcoreファイルを作成できるように」
してあります。
/etc/profileのulimitが関係あるのはどうしてかというと、RedHatの場合
ulimit -S -c 0 というふうに書いてあって、そのままだと/etc/init.d/httpd
からApacheを起動させたときにその設定をひきついでしまうからです。
0536名無しさん@お腹いっぱい。
NGNG(゚Д゚)ハァ?
0537名無しさん@お腹いっぱい。
NGNGRewriteRule 〜 と ScriptAliasMatch 〜の間に違いは何でしょうか?
cgi-bin内のファイルにアクセスすると、RewriteRuleではソースが表示され
ますが、ScriptAliasMatchではCGIが動作しています。
RewriteRuleではCGIは使えないのでしょうか?
(「Options ExecCGI FollowSymLinks」は設定しています)
0539名無しさん@お腹いっぱい。
NGNG>>537 特に理由がないなら FollowSymlinks は殺す。ユーザが / にリンク張ったら...
0540名無しさん@お腹いっぱい。
NGNGアドバイス、ありがとうございます。しかし、cgiの方がまだ動作しません。
下のような設定では、cgiの方ではエラーもでずに、ループに陥ってるよう
です。申し訳ないですが、再度アドバイスをお願いします。
/xxx/members/foo/public_html/index.html ->/~foo/index.html
/xxx/members/foo/cgi-bin/index.cgi ->/~foo/cgi-bin/index.cgi
/xxx/members/bar/public_html/index.html ->/~bar/index.html
/xxx/members/bar/cgi-bin/index.cgi ->/~bar/cgi-bin/index.cgi
【設定】
RewriteRule /~([a-z]+)/cgi-bin/(.*) /xxx/members/S1/cgi-bin/S2 [P]
RewriteRule /~([a-z]+)/(.*) /xxx/members/S1/public_html/S2
0541名無しさん@お腹いっぱい。
NGNG0542535
NGNGユーザで動かしつつ、segmentation faultなどのようなエラーが起きたときに
core dumpさせるようにすることが目的です。core dumpさせたいのは、そうする
ことでデバッグが容易になるからです。
>>536 何が分からないのか分かるように書けよ、小僧
0543名無しさん@お腹いっぱい。
NGNGまだ困っています。。。
CGI以外の方をコメントアウトしても、>>540 と同じく、エラーも
でずにループに陥っている状態でした。
つまり、2つのRewriteRuleの間で、無限ループに入っている訳で
はないようです。純粋に、RewriteRuleの記述にミスがあるようです。
何がダメなんでしょうか。恐縮。
/xxx/members/foo/cgi-bin/index.cgi ->/~foo/cgi-bin/index.cgi
/xxx/members/bar/cgi-bin/index.cgi ->/~bar/cgi-bin/index.cgi
【設定】
RewriteRule /~([a-z]+)/cgi-bin/(.*) /xxx/members/S1/cgi-bin/S2 [P]
### RewriteRule /~([a-z]+)/(.*) /xxx/members/S1/public_html/S2
0544
NGNG0545名無しさん@お腹いっぱい。
NGNG知識レベルとしてコアダンプさせる設定を施す<Apacheをデバッグする、
って普通なると思うんだけど…君自身ネタ臭いと思わないの?
0546542
NGNG「ネタネタ」うるさいんだよ馬鹿が。そんなにネタを相手にするのが
いやなら引っこんでろよ。お前の当たりもしない勘を披露するために
のこのこ出てくるんじゃないよクズが。
Apache(やモジュール)のデバッグを俺ができるかどうかは俺の質問には
影響しないだろ? 万が一ネタだとしても、他に落とし穴がある場合に
それを知っておくことはデバッグする人にとっては参考になるはず
だと思うけど(もっともApacheやphpやOpenSSLに新しいバージョンが出た
時に入れかえをするだけの人にとってはどうでもいい話だろうけど)。
デバッグしないといけない状況に一度でもなった経験がある人なら
core dumpなしに(他人が書いた)コードのバグを追うのがどれだけ
面倒か分かるよね。バグがあるモジュールを特定できている場合は
冷静にコードを読めば無理じゃないかもしれないけど、いつもそうとは
限らない。
rootで動かせば確かにcore dumpするだろうけど、そうするとcore dump
すること以外にはるかに大きなセキュリティーホールを開けることに
なるので普通だれもやりたがらない。
0547名無しさん@お腹いっぱい。
NGNG別にデバッグ中なら root で起動しても良いんじゃないですか?
まさかグローバルに置いてフリーアクセスで作業するわけでもあるまいし。
それに、root で core 吐かせてみたら、意外な場所に吐いたりして
何か発見があるかも。というわけで、段階的にやってみることをお勧めする。
まぁ、そう怒らずにマターリ行きましょうや。人によっては、その対応が
必死に見えて、より一層ネタに見えるんだろう。
0548
NGNG自己レス
./configure --with-layout=Cygwin
0549名無しさん@お腹いっぱい。
NGNGシステム依存の質問を延々と繰り返さずに犬板に帰れ。馬鹿。
0550546
NGNG今の状況は自前のモジュールをデバッグ、というんじゃなく、外に見せている
マシンでごくたまにApacheのchildプロセスがSegmentation faultを起こして
いるのが気味悪いので調べているというものです。テストマシンで容易に
再現できるならテストマシンrootでApacheを動かすのも手なんですけどね。
CoreDumpDirectory以外の場所へ吐こうとしている可能性については調べる
価値があると思います。
>>549 UNIX板はanti-linux板じゃないんだぜ? 煽るにしてもタイミングとか
煽り文句とか考えてから出直せよ。
0551名無しさん@お腹いっぱい。
NGNG馬鹿はcoreをカーネルが作成しているという事を理解していないようだな。
FreeBSD5.xならsysctlでcoreファイル名を指定できるから好きなところに好きな名前で作成できる。
Linuxにはそれなりの作法があるんだろう。だから犬板へ帰れといってるんだ。
わかったか? 低脳。
0552名無しさん@お腹いっぱい。
NGNGまあ、そういうわけなので、そちらの板に逝った方がスムーズに
回答を得られると思いまつ。
0553550
NGNG| 馬鹿はcoreをカーネルが作成しているという事を理解していないようだな。
どこからそういう推測を導き出してきたんだか。FreeBSD 4.xから既に
存在しているsysctlのエントリを自慢げに紹介する暇があったら人の
話をちゃんと読んで理解する習慣をつけて出直してきたら?
0554名無しさん@お腹いっぱい。
NGNG> Linuxにはそれなりの作法があるんだろう。だから犬板へ帰れといってるんだ。
こっちに反論できないなら引っ込みな。
0556名無しさん@お腹いっぱい。
NGNG必死だな。粘着力だけは認めてやる。
0557名無しさん@お腹いっぱい。
NGNG■ このスレッドは過去ログ倉庫に格納されています