read.cgi再開発スレ
■ このスレッドは過去ログ倉庫に格納されています
稼働させると問題が多発しているread.cgiを再開発等を話しあうスレッド
です。
アイデア等がありましたらこちらへどうぞ あ、でもこれ前に考えたのと同じか、、、。
そのときってリモートホストとか、ちゃんと保存されましたっけ。
というか、バックエンド側httpdにそのへんを渡せばいいのかな。
でも、仕組みが必要な気もすこし。 >458
mod_rpaf-ap2
を応用すれば良いのでは? >>458 要するに,バックエンド側 httpd から呼び出した bbs.cgi 等から
REMOTE_ADDR を参照した際に 127.0.0.1 ではなくて本来のアクセス元が
得られるように,ということですよね? フロントエンド側 httpd で
reverse proxy モードで mod_proxy を使えば X-Forwarded-For
リクエストヘッダが付加されます.で,バックエンド側 httpd で
>>459 の mod_rpaf ( http://stderr.net/apache/rpaf/ ) を使えば
本来のアクセス元が REMOTE_ADDR に設定されます.
なお,元のリクエストに X-Forwarded-For ヘッダが含まれている場合は
", "で区切って付加される形になります.もし bbs.cgi で
X-Forwarded-For を串判定等に利用しているのなら,", "で区切られた
2つ以上の IP アドレスが設定されていれば元のリクエストに
X-Forwarded-For が含まれていたということになりますので,
それに沿って処理すればいいかと思います. ちょっと質問
read.cgiのrawモードは廃止なんですか? >>461
RAWモードって、最近だとどのへんのやつが使ってましたっけ。 旧版kage(かちゅーしゃ)で使われてた。他の専ブラは知らない。
俺は最新版kageにraw読みこみ機能をつけて、
適宜dat直読みと切り替えられるようにしている。
ググったら現在rawモードはおまけ機能のようなので、
使うなとか廃止とか言われればそれまでだが・・・ 今は知らんけど、iMonaの一部中間鯖が使ってたはず。 実際過去ログ倉庫にあるのにエラーが出ます
そんな板orスレッドないです。
1 名前:read.cgi ver8.01+ (04/11/29-) 「Special thanks ◆cZfSunOs.U さん」投稿日:2001/04/12(木) 15:11
そんな板orスレッドないです。
過去ログ倉庫にもありませんでした。
問い合わせても見つかる可能性はほとんどありません。 少しすすんだんだが、
名前欄って緑じゃなかったっけ?
<font color=green> で強引に緑にするんだっけ? 今はそうしてるね、
CSSでまとめて色指定してもいいかもね、 以前も名前欄の色は <font> タグ使わずに CSS 使ったらどうかという話もあったのですが,
当時は CSS 未対応ブラウザのことも考慮して見送りになったということでしたが,今なら
CSS 未対応ブラウザのことはあまり考えずに CSS 使ってしまってもいいかも知れませんね.
あと,
>time[2545861248] LastModifyed 今回は無しの方向で、
Last-Modified なしということは,ブラウザのキャッシュを効かせず毎回読み込ませる
という方針でしょうか? time の表示もおかしくなっているようですが,
apr_time_t はマイクロ秒単位の 64-bit 整数です.printf 文のフォーマット指定は
ILP32 なら %lli,LP64 なら %li かと. ということで、news19 でベータテスト開始へ。
【Project peko】2ch特化型サーバ・ロケーション構築作戦 Part16
http://qb5.2ch.net/test/read.cgi/operate/1102087698/615- 2005年番 read.cgi 開発中。。。 何かあったら報告よろしくです。 FOX ★
みゃんまー http://dso.2ch.net/myanmar/
番すか、、、。 現在 新しいread.cgi は
dso/ex7/ex9/live8/news19 に入っています。
今までのところ、悪さはしていない予感。 次はいよいよ 広告関係なんだが、、、
なるべく広告定義ファイルを読まないように実装したいなぁと
思っているけど出来るべか。
また同じような事を聞きますが、
dso を使った場合。 read.cgi のプロセスは複数起動される。
何個起動されているかは知ることが出来るがコントロールする事は出来ない。
read.cgiプロセス間に相互に関連性はない。
この辺が SpeedyCGI の時とは違っているわけだな。
この認識であってます? (言葉の使い方等も違っていたら突っ込んで欲しい) >>476
>dso を使った場合。 read.cgi のプロセスは複数起動される。
read.cgi は httpd プロセスと同一メモリ空間に読み込まれるので,
read.cgi そのもののプロセスは起動されません.httpd プロセスが複数なら
read.cgi(が読み込まれている)プロセスも複数ということにはなります.
>何個起動されているかは知ることが出来るがコントロールする事は出来ない。
httpd プロセスをコントロールすることが即 read.cgi(が読み込まれている)
プロセスのコントロールということになります.
>read.cgiプロセス間に相互に関連性はない。
相互の関連性というのが変数共有等を指しているのなら,
上の方で言われている通りですね. みゃんまーでテストしてきましたー。
最新レス番を指定すると全レスが表示されますよ。 read.cgiは完全にhttpdと同化して動く、ということですね。
つまり、prefork(現在の2chのサーバのhttpdの設定)でhttpdの最大数が768個なら、
768個までread.cgiが同時に動く(可能性がある)と。 何回もすみません >>477
どうしますかねぇ
起動毎に広告定義ファイルを読まなくても良い方法。 現在は ソース埋め込みです。
>>479
live16 もdso化しようかと、 >>480 とりあえず >>440-441 を参考に...... その プールとやらはどこにあるんですか?
見たところ アパッチの中のあるメモリ領域のように感じましたが
read.cgi から作成/設定、設定されていたら読み出し
こんな感じですか? live16をdso化しました。
news19から持ってきたread.cgiを入れてあります。 どもです どもです >>486
>>485
挑戦してみます。 ちなみに modcgi_dso のホームページってどこなんですか? >>485
リンクしようかと、 >>488 現状ではないです.作るなら 2ch Wiki あたりにとか...... りょうかいですー
static なページを作ってそこにリンクしておこう
奮戦気あたりをぼちぼち書いて、 typedef struct のところで
コンパイル時こんなエラーが、
read.c:10: error: syntax error before "apr_thread_rwlock_t"
何かヘッダーが足りないですか?
あと、
#define AD_CHECK_INTERVAL 60
の 60 って単位は sec ですか? >>491 あ......thread サポートが有効でないとそのあたりが定義されませんね......
rwlock や mutex を使ってるところは
#if APR_HAS_THREADS
:
#endif
で囲ってしまうのがいいかと.
>>492 そうです. threadサポートは(今のところ)入れてないです。< tiger/cobra
今のところこれでいきますが、将来worker MPMとか使う時は、どきどき、か。
でもSpeedyCGIもworker MPMには対応してないので、
その時にはまた別途、ってかんじかなと。 質問ですじゃ
if (ad_pool->mtime)
ap_rwrite(ad_pool->m->mm, ad_pool->m->size, r);
この部分で実際に書いていると思うんですが、(>>441)
1) if (ad_pool->mtime) これはどんな意味なんですか?
2) 文字列はad_pool->m->mmに入っているから strcpy(保存.ad_pool->m->mm);
とかやって取って置けますか?
ちなみに コンパイルも通って
実際に文字列がファイルから取ってこれるところまではできました。
インターバルが 60 になっているかどうかの検証はしていません。 >>497
1) 広告ファイルが存在しないなど読み込み不能の場合は ad_pool->mtime を
0 にしているので,そのチェックです.
2) できますが,strcpy するなら mmap する意味がなくなってしまうかと.
現状のコードは mmap された領域自体を保持するようにしています.
# もっとも,終端が '\0' である保証はないので strcpy より memcpy の方がいいですが. スレ開いたとき上部に出てくるリンクで、
「101-」から「1001-」に該当する部分がごっそり落ちてるんすけど。 ふむふむ
必要なときに出すことにしまーす。
広告定義ファイルが更新されたら即広告も変化するということでいいのかしら? >>500 前回のチェックから AD_CHECK_INTERVAL 秒経過後のチェックで
ファイル更新が確認されれば広告も更新ということですね. うーむ
600 sec にして広告変更したらすぐ変わっちまったなぁ
毎回読んじゃっているのかしら? あと,ファイル更新の際は旧ファイルをいったん rm するか,
新しいファイルをいったん別ファイルで作成した上で mv するか,という手順が必要です.
mmap の性質上,旧ファイルをそのまま書き換えると SEGV でこける可能性があります. >>502 httpd プロセスが多数ある状況では,前回呼んだ時と同じ httpd プロセスで
処理してもらうってことにはなかなかならないと思うので,その確認をするなら
httpd プロセス数を絞らないと難しいかもです. >>504
httpdのpidとかでチェックする、、、のかな。
でも、例えばlive8やlive16とかだと1280人もいるし。 >>505 やるとすればそうなりますね.dso.2ch.net だけ一時的に数を絞ってみるとか...... ファイルは管理人が必要なときに FTP で一気に
全サーバに配られる仕組みになっとります。 >>507
FTPでもrenameはできるので、
いったん read.cgi.new という名前で put して、
read.cgiにrenameするのがいいとおもわれますです。 Perl で FTP だったりするです。
現状までは書いたけど、それ以上は私の能力の限界だったり、、 あっ......>>503 は広告ファイルのことを意図して書いたんですが,
dlopen() も OS 内部で mmap() しますから read.cgi 自体もそうですし,
その他のデータファイル等も CGI 等でオープン中に中身が変わると
やはり不都合が生じる可能性があるので,基本的にその他のファイルも含めて
>>508 のような手順を踏むのがいいかも知れませんね. Net::FTP を使ってるなら、単にこれでいいのではと。
$ftp->put("read.cgi","read.cgi.new");
$ftp->rename("read.cgi.new","read.cgi");
$ftp->site("CHMOD","0755","read.cgi"); リンクはなくなるの?
スレや他サイトの<a>タグが全然つかなくなってるんですけど tiger 全部 dso 化したいですー > root ★さん
game10
news18
game9
etc4
life7
hobby7
で全部かな? おぉ、、、。すごい。
ちゃんと、上の広告入ってるですね。< news19
あとはime.nuかしら。
で、一番下のFOX ★は<b>と</b>で囲んだほうがよさげかも。 >>517
tiger503 ex7 済み
tiger504 game10
tiger505 news18
tiger506 game9/etc4/dso dsoのみ済み
tiger507 live16 済み
tiger508 life7
tiger509 news19 済み
tiger510 hobby7
上記、済み以外のところを作業してくるです。 って ime.nu って今やってもいいんだけど、
単に http://ime.nu/http://abc.bb/ とかってつけるんでしたっけ? http://ime.nu/abc.bb/
のように、http:// を除いた部分が入ります。
で、2ch.net内はime.nuを経由しないと。
で、桃色の場合はpinktowerになるのかな。 ime.nu でいいんでしたっけ?
いくつか種類があるような。 ftp://example.com/path/ や https://example.com/ は ime.nu 側が対応してなければ
直リンの方がいいでしょうけど. あっと ftp は別にいいとして
https:// は対応しなきゃ < あんかー付け >>519 のサーバ側の作業終了です。
これから、まずは news19 の read.cgi を入れておきます。 >>519 のサーバのread.cgiを、news19のものに入れ替えました。 >>519 のサーバは、read.cgi / bbs.cgi / subbbs.cgi の時には nokeepalive していたのを
dat直読み同様に keepalive 有効にしました。 私のほうの作業は、これでおわりのはず。
read.cgiはいったんread.soという名前でftp/putして
chmodしてrenameするのをやってみました。
Text file busyにもならないし、これがよいかなと。
ということで明日より出勤のため、そろそろおやすみなさい。 >>529 お疲れさまでした.
まぁあと気になるのは,Last-Modified チェックをなくしたことで,
リロードしまくりの人が多い場合にどうなるか,ってあたりですが. 最新のに入れ替えた >>519
>>531
どっちが負荷高いのかな? ってとこかと、
(転送量は気にしない場合)
わからんのだが、 >>530-531
ほんとうに働いたのは、FOXさんかと。
私はサーバの設定をごそごそしただけ。
で、>>531は、各サーバ(特にread.cgiが多いnews18とnews19)の
転送量でおのずとわかるのかなと。
ねるー。 >>534 ですね.
>>533 お疲れさまです.
まぁ Last-Modified チェック版と非チェック版を用意して比較するのもいいかも知れませんが. 寝ようと思ってnewsplusで確認したら、>>1 の出方が軒並み変なような。
あと、リンクが ? で切れてしまうような。 <base>を使わない以前のURLの書き方に戻してくれよぉ(´・ω・`) 今dsoの奴は常に
<base href="http://dso.2ch.net/myanmar/">
を出して、
「>>1」はdatのまま
<a href="../test/read.cgi/myanmar/1101888913/1" target="_blank">>>1</a>
ってなってるやん。 【事故】初詣での列に乗用車が衝突、15人負傷@千葉・成田山新勝寺[050103]
http://news19.2ch.net/test/read.cgi/newsplus/1104752252/
& でもリンク、切れちゃいますね。 >>541
サーバの負荷を下げるのが目的で組んでますから、 life7、game9、news19で、httpd(たぶん組み込まれたread.cgi)が、
暴走を起こしている模様。
15065 ch2life7 127 0 39904K 4840K CPU1 0 337:20 35.94% 35.94% httpd
15099 ch2life7 126 0 40384K 5124K RUN 0 341:22 35.30% 35.30% httpd
14880 ch2life7 125 0 39920K 4852K RUN 0 34:48 35.21% 35.21% httpd
14990 ch2life7 126 0 40256K 5152K RUN 0 34:04 34.52% 34.52% httpd
14267 ch2life7 125 0 39912K 4700K RUN 0 229:06 34.47% 34.47% httpd
15128 ch2life7 125 0 40264K 5232K RUN 0 34:33 34.47% 34.47% httpd
14872 ch2life7 125 0 39928K 4940K RUN 0 15:31 33.98% 33.98% httpd
これから、とりあえず順にhttpdをリスタートします。 こんなかんじ。
%uptime
10:09PM up 38 days, 23:10, 1 user, load averages: 10.60, 10.55, 10.56 hobby5 チン☆⌒ 凵\(\・∀・) まだぁ? news19は観測してなかったです。life7とgame9だけ。
httpdをリスタートしました。 >>548
しばらくは、こんなかんじですかね。
こういった「組み込みもの」のデバッグは、さて、どうするか。
やっぱ、gdbでプロセスにアタッチかしら。 ここ10年くらいデバッカーは使ってないなぁ、そういえば
勘で地道に、、
500 error とかの報告が上がると思われ、
その都度かと。 ◆新板をねだるスレ@秘密基地◆3
http://pie.bbspink.com/test/read.cgi/erobbs/1097750466/
bbspink.com 内のリンクも、ime.nu経由になってしまってます。 あと、bbspink.com内におけるリンクの表示は、
従来はpinktower.com経由だった気がするです。 あとは、bbspink.comだと、このへん↓の広告が微妙に違ってたかなと。
32 KB [ 2ちゃんねるが使っている 完全帯域保証 レンタルサーバー ] e.ofuda.cc、ひょっとしてちょっと苦しい、、、のかな。 おおっ
いれたまんま全サーバにくばっちまった、、、
そうでもないような、、、
観察中。。。 < ofuda ■ このスレッドは過去ログ倉庫に格納されています