投稿日:2002年02月20日 作成鷹の巣

No.1557 wforum.cgi が遅いのですが



wforum.cgi が遅いのですが

No.1557 投稿時間:2002年02月20日(Wed) 08:23 投稿者名:にしむら URL:http://penguin.nakayosi.jp/

お世話になっています。

AN HTTPDでCGIを使ったとき、だんだんCGIの動きがトロクなるときが
あります。

たとえば、ここの掲示板と同じだと思うのですが、wforum.cgi の反応
がすっかり鈍くなってしまいました。クリックしてから画面がでてくる
まで15秒くらいまたされます。設置したときは、スイスイ動いていたの
ですが・・・

なにか解決方法はありませんか。


LAN環境のみの現象だとわかりました。

No.1560 投稿時間:2002年02月20日(Wed) 19:31 投稿者名:にしむら URL:

自己レス、です。(^^;;

再度、いろいろやってみたら、LAN環境のみの現象だとわかりました。

外部(WAN側)からのアクセスについては、問題ないレスポンス(反応)
です。

これって、どういうことなんでしょ??

私んとこの固有の現象かな。とほほ。(T_T


wforum.cgi のバージョンを教えて下さい。

No.1561 投稿時間:2002年02月20日(Wed) 19:40 投稿者名:鷹の巣 URL:http://sakaguch.com/

> 再度、いろいろやってみたら、LAN環境のみの現象だとわかりました。


wforum.cgi のバージョンを教えて下さい。3.23でしょうか。


当方でも同様の症状が確認出来ました。改造するとセキュリティ上、マズイでしょうか?

No.1565 投稿時間:2002年02月20日(Wed) 23:19 投稿者名:鷹の巣 URL:http://sakaguch.com/

> > 再度、いろいろやってみたら、LAN環境のみの現象だとわかりました。
> 
> 
> wforum.cgi のバージョンを教えて下さい。3.23でしょうか。


自宅サーバーの環境は、
OS:windows 2000 Professional build 2195 SP2
Webサーバー:AN HTTPd1.36b
CGI:ActivePerl-5.6.1.631-MSWin32-x86.zip

ブラウザのプロキシ設定をはずすとwforum.cgi のバージョン3.23と3.24で、LAN環境のみの現象で確かにアクセスが10秒以上かかることが
確認できました。


#----------------#
#  ホスト名取得  #
#----------------#
sub get_host {
	$host = $ENV{'REMOTE_HOST'};
	$addr = $ENV{'REMOTE_ADDR'};

	if ($host eq "" || $host eq $addr) {
#		$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
	}
}

上記の様に一行をコメント化すると、LAN環境でもアクセスが10秒以上かからなくなります。セキュリティ上、マズイでしょうか。


もし、3.23より前のバージョンをお持ちでしたら、「ファイル比較 phUpdate(Windows95-98-Me-ユーティリティ)」
http://www.vector.co.jp/soft/win95/util/se148069.html
で、wforum.cgiのファイルを比較して頂けませんか。


素晴らしい!参考になります。

No.1567 投稿時間:2002年02月21日(Thu) 00:20 投稿者名:ryujin URL:

当方、プログラミングは不得意で理解はできていないのですが、ココまでされるなんて素晴らしいと関心してしまいました。
P.S.
良かった「鷹の巣」さんのコメント待って恥じの<s>上書き</s>上塗りするとこでした。
記事No.1401を参照してくださいなんてコメントしちゃうとこでしたから。


スイスイ動くようになりました。

No.1569 投稿時間:2002年02月21日(Thu) 09:52 投稿者名:にしむら URL:http://penguin.nakayosi.jp/

> wforum.cgi のバージョンを教えて下さい。3.23でしょうか。

こちらの環境は下のようになっています。、
Windows2000ProSP2
AN HTTPD 1.38c
wforum v3.23

アドバイス通り "ホスト名取得" のところの一行をコメントアウト
することで、スイスイ動くようになりました。

とてもうれしいでーす。(^O^)


kentさんの掲示板で、「たいふ~ん!」さんより有難いご回答がありました。

No.1571 投稿時間:2002年02月21日(Thu) 13:14 投稿者名:鷹の巣 URL:http://sakaguch.com/

> こちらの環境は下のようになっています。、
> Windows2000ProSP2
> AN HTTPD 1.38c
> wforum v3.23
> 
> アドバイス通り "ホスト名取得" のところの一行をコメントアウト
> することで、スイスイ動くようになりました。
 
 
kentさんの掲示板
http://www.kent-web.com/support/old/47/0229.html
にこの問題を投稿していましたところ、「たいふ~ん!」さんより有難いご回答がありました。
以下にその内容を貼り付けます。
 
 
たいふ~ん!> 10秒以上かかるって方が謎ですが(ネームサーバ探しに行ってるのかな?)
たいふ~ん!> (10秒かかればホスト名の変換ができてるのか知りたい所・・・)
 
 
セキュリティ上自宅サーバーのLAN 内の名前解決を行っていないため、
gethostbyaddrの逆引きでtime outになります。
 
 
たいふ~ん!> ・・・まあ、問題ないでしょう。
たいふ~ん!> ただ、それやるなら、
たいふ~ん!> 
たいふ~ん!> #	if ($host eq "" || $host eq $addr) {
たいふ~ん!> #		$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
たいふ~ん!> #	}
たいふ~ん!> 	if ($host eq "") { $host = $addr; }
たいふ~ん!> 
たいふ~ん!> のように、3行消して1行追加しといた方がいいです。
 
 
色々教えて頂いてありがとうございました。
nslookupコマンドで、逆引きが使用できるOS(PC-UNIX , MAC OSX , windows NT/2000/XP)の方には、ご指示頂いた方法で改造するように推奨します。
 
 
 
nslookupコマンドで、逆引きが使用できないOS(windows 95/98/Me , MAC)の方には、下記の様に改造するように推奨します。
 
投稿後の追記)CGIの中で、$hostがどのように使用されているかどうかが、不明ですから、全てのOSの方にも、下記の改造を推奨します。
             LAN内で逆引き名前解決(サーバー機のhostsファイルにLAN内のアドレスとホスト名を設定する等)を行っていれば、改造は不要です。
 
 
#----------------#
#  ホスト名取得   #
#----------------#
sub get_host {
	$host = $ENV{'REMOTE_HOST'};
	$addr = $ENV{'REMOTE_ADDR'};
 
#	------- 追加開始 ------
	# LAN 内のプライベートセグメントアドレス(192.168.1.0)を設定して、
	# LAN 内からのアクセス(192.168.1.*)に対して、gethostbyaddrが実行されないようにします。
	if (pack("C3", split(/\./, '192.168.1.0')) eq pack("C3", split(/\./, $addr))) {
		$host = $addr;
	} elsif ($host eq "" || $host eq $addr) {
#	------- 追加終了 ------
 
# 変更	if ($host eq "" || $host eq $addr) {
		$host = gethostbyaddr(pack("C4", split(/\./, $addr)), 2) || $addr;
	}
}


安心して使えそうです。

No.1574 投稿時間:2002年02月21日(Thu) 20:16 投稿者名:にしむら URL:http://penguin.nakayosi.jp/

ありがたや~ありがたや~ (__)

これで安心して使えそうです。

それにしても、完全に脱帽で~す。


掲示板が遅いのを改善しました。

No.1582 投稿時間:2002年02月22日(Fri) 13:32 投稿者名:よっくん URL:

LAN内部からのcgiアクセスが遅い理由がみなさんのお陰でやっと分かりました。
この書き込みは非常に役に立ちましたよ。ありがとうございます。
今まで自宅サーバで悩んでいた事がこれで解決しました。
私の自宅サーバーには3つ程全く種類の違う掲示板があるのですが
上記の内容の部分を触ると改善しました。
よかったやっと納得です。


|目次|掲示板|過去ログ目次|▲頁先頭|