Squid Web Proxy Cache 2
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
2006/02/02(木) 05:35:20本家: http://www.squid-cache.org/
0792名無しさん@お腹いっぱい。
2010/10/24(日) 13:38:37確かSquidがデフォでも閲覧速くなったような気がしたんだけど
そもそもブラウザのキャッシュ仕組み悪いんだからな
Firefoxの場合キャッシュのエントリーは8192しか残れないことが特に痛い
それにGoolgeのエンジニアもそう言ってたし
ブラウザキャッシュの改善とパフォーマンス
http://journal.mycom.co.jp/news/2010/04/30/057/index.html
0793名無しさん@お腹いっぱい。
2010/10/24(日) 17:53:260794名無しさん@お腹いっぱい。
2010/10/25(月) 00:22:41というか、anonymousBに設定してもuser-agentだけだだ漏れになるんですが、
設定のどこを見直せばいいんでしょうか?2.7.9です
0795名無しさん@お腹いっぱい。
2010/10/25(月) 16:49:52公式サイト読ム
http://www.squid-cache.org/Versions/v2/2.7/cfgman/header_replace.html
>Requires: --enable-http-violations
$ squid -v
デ コンパイルオプション ミレル
0796名無しさん@お腹いっぱい。
2010/10/25(月) 20:29:41一人二人ならまさに >>786 にある polipo を使ったほうがいいんじゃないか?
そしてウェブブラウザ側のキャッシュをゼロにしておけば良かろう
0797名無しさん@お腹いっぱい。
2010/10/25(月) 22:57:200798名無しさん@お腹いっぱい。
2010/10/27(水) 02:51:510799名無しさん@お腹いっぱい。
2010/10/27(水) 11:33:06>ファイルの前の方だけキャッシュする
意味分からない、詳細詳しく
0800名無しさん@お腹いっぱい。
2010/10/27(水) 16:57:37自分独り用のキャッシュサーバーだけど、こんな感じでやってる
・外部ファイル(画像 .css .js)とニコニコ(nicovideo.jp/smile)は refresh_pattern で明示的にキャッシュする (保持期間長め)
・ニコニコ以外の動画サイトとダウンロードファイル等(.zip .iso .pdf .mp4 ...)は acl と cache deny で明示的にキャッシュしない
・メモリの搭載量を増やして cache_mem に多めに割り当てる
・cache_swap_high と cache_swap_low の値を1違いにする
・replacement_policy は lru が良い気がする
・DNS関係のキャッシュsizeを増やす (ipcache_size/fqdncache_size)
・negative_dns_ttl を小さく、positive_dns_ttl を大きくとる
・reload_into_ims を on
・pipeline_prefetch を on
ブラウザ側 (Firefox)
・about:config で browser.cache.disk.enable を false
・about:config で browser.cache.memory.enable を true
・about:config で network.http.proxy.pipelining を true
0801名無しさん@お腹いっぱい。
2010/10/27(水) 17:50:40すぐ試してみるわ。サンクス。
0802名無しさん@お腹いっぱい。
2010/10/27(水) 17:57:24>外部ファイル(画像 .css .js)とニコニコ(nicovideo.jp/smile)は refresh_pattern で明示的にキャッシュする (保持期間長め)
こんな形でいいのでしょうか?
refresh_pattern -i \.css$ 10 50% 60 reload-into-ims
refresh_pattern -i \.js$ 10 50% 60 reload-into-ims
refresh_pattern -i \.xml$ 10 50% 30 reload-into-ims
0803名無しさん@お腹いっぱい。
2010/10/27(水) 19:29:45>801ではないが pipeline_prefetchは 勉強になった
0804名無しさん@お腹いっぱい。
2010/10/27(水) 20:27:310805名無しさん@お腹いっぱい。
2010/10/27(水) 21:40:42ご参考まで
refresh_pattern -i .css$ 1440 50% 2880 ignore-reload
refresh_pattern -i .js$ 1440 50% 2880 ignore-reload
refresh_pattern -i .xml$ 1440 50% 2880 ignore-reload
0806名無しさん@お腹いっぱい。
2010/10/28(木) 00:04:37>>805
ignore-reloadとreload-into-imsの違いは何でしょうか?
0807名無しさん@お腹いっぱい。
2010/10/28(木) 02:47:55refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 ignore-reload ignore-no-cache ignore-private
refresh_pattern -i \.css$ 1440 90% 2880 ignore-reload ignore-no-cache ignore-private
refresh_pattern -i \.js$ 1440 90% 2880 ignore-reload ignore-no-cache ignore-private
refresh_pattern -i \.xml$ 1440 90% 2880 ignore-reload ignore-no-cache ignore-private
refresh_pattern -i \.index.(html|htm)$ 0 40% 10080
普通に速い
0808名無しさん@お腹いっぱい。
2010/10/28(木) 08:27:51Firefoxで network.http.proxy.pipelining を使わないで代わりに
network.http.max-persistent-connections-per-proxy
の値をおもいきし増やす*とサクサク感が増したかも。
(* network.http.max-connectionsの値と同じにしちゃう)
(鯖とは有線LAN接続。無線経由だと勝手が違うかも)
>>802
形はそんな感じで。
min max は単位が分なので対象のコンテンツの更新頻度を勘案してもっと大きくして良いと思いますよ。
オイラはTumblrやFlickrを良く巡回するので画像なんかはかなり強めのキャッシュ設定にしてまふ。
>>806
公式
http://www.squid-cache.org/Versions/v2/2.7/cfgman/refresh_pattern.html
日本語
http://www.itmedia.co.jp/enterprise/articles/0812/01/news024.html#blue
0809名無しさん@お腹いっぱい。
2010/10/28(木) 10:31:28いまいち分からないけど
reload-into-imsよりignore-reloadのほうが画像コンテンツに合ってる気がする…
それとも組み合わせても悪くもなさそうな…
0810名無しさん@お腹いっぱい。
2010/10/28(木) 11:10:50refresh_pattern -i \.(gif|png|jpg|jpeg|ico)$ 10080 90% 43200 reload-into-ims ignore-reload ignore-no-cache ignore-private
0811名無しさん@お腹いっぱい。
2010/10/28(木) 13:09:13mimeタイプではセットできないの?
いまどき画像ファイルを拡張子で判定できるとは限らないし。
0812名無しさん@お腹いっぱい。
2010/10/28(木) 13:16:41むしろ、まとめて判定する方法あるの?
0813名無しさん@お腹いっぱい。
2010/10/28(木) 21:24:24network.http.max-connections-per-server も同じ様に増やすと良いよ。
あと、pipeliningは完全にオフにしないで
network.http.pipelining.maxrequestsを2くらいに減らすのも試してみると吉。
0814名無しさん@お腹いっぱい。
2010/10/29(金) 01:43:350815名無しさん@お腹いっぱい。
2010/10/30(土) 14:22:08たとえばこういうのは、URLの末尾が .jpg$ だけど流れてくるのはHTMLだ。
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Feral-kitten-eating-adult-cottontail-rabbit.jpg
MIMEタイプが image/jpeg とか image/* かどうかで判別するのが本筋だと思うけど。
できないのかな。
0816名無しさん@お腹いっぱい。
2010/10/30(土) 16:39:49使用されている画像が4、5点程度でも歯抜けなどザラに起こるし
再読み込みの必要が発生した時点でそのページに関しては2倍の時間をロスした事になる
読み込みミスなどは普通に利用していれば0で済むのにわざわONにするのは全く効率的でない
それとnetwork.http.max-connections-per-server等は増やす程速くなる訳では無く
速度に関してマイナスになる事も普通にあるので数字で確認出来るページで確認しないと損しますよ
質問です
Windowsのコマンドプロンプトの書式が良く分かりません
squidというproxyを使ってキャッシュを作ろうと思ったんですが
アクセス権限権限の関係で"permission denied"と表示されるため変更しようと思ったんですが
chown squid:squid /var/cache
これだと構文が間違っていると言われてしまいます
実際にcacheフォルダの配置はC:\squid\var\cacheといった形になってます
0817名無しさん@お腹いっぱい。
2010/10/31(日) 13:35:52これ見てもなかなかわかりませんけど…
http://squidproxy.wordpress.com/2007/11/16/how-cachable-is-google-part-1-google-maps/
0818名無しさん@お腹いっぱい。
2010/10/31(日) 15:42:43> ・外部ファイル(画像 .css .js)とニコニコ(nicovideo.jp/smile)は refresh_pattern で明示的にキャッシュする (保持期間長め)
> ・ニコニコ以外の動画サイトとダウンロードファイル等(.zip .iso .pdf .mp4 ...)は acl と cache deny で明示的にキャッシュしない
キャッシュしないURLはsquidをショートカットさせた方がいいと思うけど
セキュリティの問題がある。
function FindProxyForURL(url,host) {
if (host == "nicovideo.jp" || /\.(jpg|png|gif|css|js)$/.test(url)) {
return "PROXY host1:port1";
} else if (/\.(zip|iso|pdf|mp4)$/.test(url)) {
return "DIRECT";
} else {
return "PROXY host2:port2";
}
}
>>811
> mimeタイプではセットできないの?
未対応?
http://bugs.squid-cache.org/show_bug.cgi?id=1913
0819名無しさん@お腹いっぱい。
2010/10/31(日) 21:06:00>・replacement_policy は lru が良い気がする
LRU:最終アクセス順にキャッシュに残す
LFU-DA:累積参照数と最終更新日を元にキャッシュに残す
GDS-F:累積参照数をbyteで割った数字と、最終更新日を元にキャッシュに残す
http://www.hpl.hp.com/techreports/1999/HPL-1999-69.html
によると↑と読めるので
自分の場合は
メモリキャッシュはブラウザ側のメモリキャッシュもあるので、LRUでなくheap LFUDAにしてる。"ついさっき使った"ではなく、"最近よく使っている"キャッシュを保持する感じで。
あとmaximum_object_size_in_memory を8MBで容量制限。
GDSFは昔はともかくHDDもメモリもコンテンツも容量的にリッチな現在では極端すぎる気がする。
ディスクキャッシュはLRU。LRU以外は、頻繁にアクセスしててもキャッシュの作成/更新日から時間がたつと、だんだん序列が下がってやがて消えちゃうみたいなので。
0820名無しさん@お腹いっぱい。
2010/11/01(月) 14:53:33Squidとか使ってたらブラウザのメモリーキャッシュはもう別にいらなくてもいいじゃない?
それにそれを切れば動作も一層サクサクになれるかもしれないし。
0821名無しさん@お腹いっぱい。
2010/11/01(月) 19:00:36日本語化の方法はよくわからないんですけど…
0822名無しさん@お腹いっぱい。
2010/11/01(月) 20:09:04ならない
0823名無しさん@お腹いっぱい。
2010/11/01(月) 20:20:41詳しく頼む
0824名無しさん@お腹いっぱい。
2010/11/01(月) 20:23:380825名無しさん@お腹いっぱい。
2010/11/01(月) 20:32:000826名無しさん@お腹いっぱい。
2010/11/01(月) 22:14:380827名無しさん@お腹いっぱい。
2010/11/01(月) 22:17:34えっ
0828名無しさん@お腹いっぱい。
2010/11/01(月) 22:25:070829名無しさん@お腹いっぱい。
2010/11/01(月) 22:31:15情強さん、乙です。
0830名無しさん@お腹いっぱい。
2010/11/01(月) 23:51:290831名無しさん@お腹いっぱい。
2010/11/04(木) 21:56:240832名無しさん@お腹いっぱい。
2010/11/05(金) 15:12:22別な板で聞いたら?
0833名無しさん@お腹いっぱい。
2010/11/05(金) 16:57:200834名無しさん@お腹いっぱい。
2010/11/05(金) 18:26:29http://wiki.squid-cache.org/Features/LogFormat#common
0835名無しさん@お腹いっぱい。
2010/11/07(日) 19:58:53パラメータのreload-into-imsとignore-reloadの併用は実質な意味があるのでしょうか?
0836名無しさん@お腹いっぱい。
2010/11/07(日) 23:56:270837名無しさん@お腹いっぱい。
2010/11/08(月) 00:33:530838名無しさん@お腹いっぱい。
2010/11/08(月) 06:00:38ログ見る限り、ignoreがあるとimsも無効っぽい。
0839名無しさん@お腹いっぱい。
2010/11/11(木) 16:00:09その割に何かデメリットがありませんでしょうか?
0840名無しさん@お腹いっぱい。
2010/11/11(木) 23:14:59外部のDNSサービス(googleなら8.8.8.8等)はともかくこういう場合は指定不要?
それとも明示的な指定があった方が良いの?
ソレらしい場所は見当たらないっぽいけど…
0841名無しさん@お腹いっぱい。
2010/11/12(金) 03:11:55何で何を指定するの?
0842名無しさん@お腹いっぱい。
2010/11/13(土) 16:03:310843名無しさん@お腹いっぱい。
2010/11/13(土) 16:38:03refresh_pattern -i \.x-javascript$ 1440 50% 1440 ignore-reload
これで効けるかな
0844名無しさん@お腹いっぱい。
2010/11/15(月) 16:20:26この中華サイトはどうしてもキャッシュに入ってくれない。なんでだろう。
0845名無しさん@お腹いっぱい。
2010/11/15(月) 19:31:30直で開くの怖かったからaguseに食わせてみたんだけどNotFoundだね。
日本からのアクセスが拒否られてるとか?
0846名無しさん@お腹いっぱい。
2010/11/15(月) 19:46:50Not Foundなのはタイトルだけみたい。
ウィルスとかトロイがないようで安心にアクセスできると思う。
0847名無しさん@お腹いっぱい。
2010/11/17(水) 16:06:330848名無しさん@お腹いっぱい。
2010/11/17(水) 16:14:150849名無しさん@お腹いっぱい。
2010/11/19(金) 18:02:310850名無しさん@お腹いっぱい。
2010/11/20(土) 00:55:380851名無しさん@お腹いっぱい。
2010/11/20(土) 10:40:39squidフォルダごとramdiskに貼るだけではダメですか?.confの書き換えも必要?
0852名無しさん@お腹いっぱい。
2010/11/20(土) 12:13:36そもそもラムディスクに入れる必要はないんじゃない?
0853名無しさん@お腹いっぱい。
2010/11/20(土) 12:57:55それもそうですね、変な事聞いてすみませんでした
0854名無しさん@お腹いっぱい。
2010/11/21(日) 15:15:19Accessログみたらルータとなにやらやりとりしてるのでおかしくなったぽい
0855名無しさん@お腹いっぱい。
2010/11/21(日) 16:37:480856名無しさん@お腹いっぱい。
2010/11/21(日) 17:34:06鯖はATOM330でメモリは2GBっす。
クライアントはPC端末三台、iPhone、iPadかな?
ちなみにルータはバッキャローのwzr-300nhだったかな。
0857名無しさん@お腹いっぱい。
2010/11/21(日) 17:34:49ちなみに鯖はデビアンレニーだお
0858名無しさん@お腹いっぱい。
2010/11/21(日) 20:04:340859名無しさん@お腹いっぱい。
2010/11/22(月) 14:16:26>bout:config で browser.cache.disk.enable を false
こうすると遅くなる場合が多い気が強くする。
0860名無しさん@お腹いっぱい。
2010/11/24(水) 16:51:480861名無しさん@お腹いっぱい。
2010/11/25(木) 01:38:15あるとすればそのディストリビューションが勝手にやってる。
おおかたDebianだろ
0862名無しさん@お腹いっぱい。
2010/12/01(水) 19:30:40access.logをApache形式でlogをはかせるため、squid.conf内のemulate_http...の部分を有効にしましたが、yyyy/mm/ddの形式のlogで吐かれません。
どうしてでしょうか?
0863名無しさん@お腹いっぱい。
2010/12/01(水) 23:02:230864名無しさん@お腹いっぱい。
2010/12/01(水) 23:15:51squid3?
logformatで定義したフォーマットを使っているとか
0865名無しさん@お腹いっぱい。
2010/12/02(木) 19:23:57まさにそれだした!
0866名無しさん@お腹いっぱい。
2010/12/02(木) 19:29:32| _____ |
| /´ \ ` 、 |
| . ' '. 》 |
|. / ,. -──- 、 l 〃 |
| //: : : : !\:_:|:_: \/ハ |
| 〃: : :!、: : :|/∨ヘ : : !ヽ| |
| f: : |斗-\| '下ハミV h: :! |
| |: : ハ マり |: :リ、: \ |
| lハハい == , . へ |: :l: 、\: \ __ |
| }ハ く{ }/|: :|\\\: : : : `\ .|
| /;|: |>r--rf |: :l- 、\\\ ̄`\\ |
| ///:/ ̄う |! __,ハ: !.〃\∨l\ヽ Y. |
|. 〃 .// _,テ |!,/ V《 ヽ| Y |:|. |
| || !´`ーイ、_ ,. Vマヽ、 ヽ. j:| |:| .|
|. __,リ_ |`T卞、_{ | .ノ ハ:.}/ }':/ __}:} |
| \/ ヽ:Y: {∧ '、 テ{/厶rァ 7´:〈 |_;「. |
| くノ〈:〈__ 二 {_ノ{:{ーヘ \/. . .|
| ̄代理! _  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄..|
| ( ` . ・. . | |
| `ー、 ( ̄ヽ | | | , -ー| |
| /、 _.ノ. `ー |. .!_! | ヽ_.| 女良 |
|__________|________________.|
| Proxy サーバの構築と運用 |
| |
| O'REILLY |
| オライリー・ジャパン . . . |
|_______________________|
0867名無しさん@お腹いっぱい。
2010/12/03(金) 04:40:520868名無しさん@お腹いっぱい。
2010/12/13(月) 16:51:100869名無しさん@お腹いっぱい。
2010/12/13(月) 16:55:040870名無しさん@お腹いっぱい。
2010/12/13(月) 20:40:250871名無しさん@お腹いっぱい。
2010/12/14(火) 01:43:12FindProxyForURLをカスタマイズすれば分母が小さくなるのでヒット率あがる。
0872名無しさん@お腹いっぱい。
2010/12/14(火) 07:10:18具体的にどういじればいいのでしょうか?
0873名無しさん@お腹いっぱい。
2010/12/14(火) 19:40:52確かにヒット率は上がるが それは web cache 経由せずに外に出て行くこともできる環境でしか成立しないだろ
本末転倒だwww
0874名無しさん@お腹いっぱい。
2010/12/14(火) 22:29:26キャッシュ機能を無効にしたプロキシサーバを別に立ててpacで使い分け。
Squidのキャッシュヒット率は維持できる。
0875名無しさん@お腹いっぱい。
2010/12/15(水) 08:34:01これで激しく上がると思う。
絶対キャッシュされないといえば application/octet-streamとかみたいなやつかな
0876名無しさん@お腹いっぱい。
2010/12/21(火) 23:31:19普通はどうするんだろう?
実運用環境ではまだみんな2.7+COSSなのか?
0877名無しさん@お腹いっぱい。
2010/12/21(火) 23:36:160878名無しさん@お腹いっぱい。
2011/01/06(木) 13:00:34長い時間で内容があまり変更しないイメージ類
43200 60% 43200 override-expire ignore-reload ignore-no-cache ignore-private ignore-auth ignore-stale-while-revalidate
遠隔鯖にチェックしておかないと古いデータを落としてしまうその他
0 30% 10080 reload-into-ims ignore-reload ignore-no-cache ignore-private ignore-auth ignore-stale-while-revalidate
これでいいかな?完璧かな?アドバイスちょうだい。
0879名無しさん@お腹いっぱい。
2011/01/08(土) 23:17:28利用環境、目的が書いてないから何とも
とりあえず、"ignore-auth"は止めた方がいい
0880名無しさん@お腹いっぱい。
2011/01/09(日) 00:33:14環境は家庭内でインターネットに接続した1~2台のPCとスマホに利用させようとするんです。
また、ignore-authをつけて何か悪いことでも起こるの?
0881名無しさん@お腹いっぱい。
2011/01/14(金) 22:34:100882名無しさん@お腹いっぱい。
2011/01/14(金) 22:35:463.2でCOSS復活したの?
0883名無しさん@お腹いっぱい。
2011/01/14(金) 23:03:45ロードマップを見る限り一応復活することになってる。コードもある。
だからrsyncでbetaの最新コードを数日おきに引っ張ってきてmakeしてるんだけど
COSSまわりのコードでとおらねえ('A`) ここで止まる。
coss/store_dir_coss.cc: In function 'void storeCossRemove(CossSwapDir*, StoreEntry*)':
coss/store_dir_coss.cc:361: error: 'class MemAllocator' has no member named 'free'
確かに free() という表現はソースコード全域でここ1ヶ所にしかない。
COSS抜きなら最後までmakeが通る。
情けないことにプログラミング言語はまったくわからんので直し方がわからん。
でもfree()といったら標準関数じゃないんかい。
0884名無しさん@お腹いっぱい。
2011/01/14(金) 23:32:30最近追っかけて無かったけど、そういう状況なのね
今度時間がある時に見てみるよ
0885名無しさん@お腹いっぱい。
2011/01/15(土) 11:49:44MemPools周りを調べるのが良さそう。
と言われてもさっぱりだろうけどw
環境によってはビルドできる予感。
0886名無しさん@お腹いっぱい。
2011/01/15(土) 12:27:35この仕様変更にCOSS側が追随できてないだけじゃないの
0887885
2011/01/16(日) 10:30:10ごめん、知ったかぶりした。
--- coss.orig/store_dir_coss.cc 2011-01-14 10:12:26.000000000 +0900
+++ coss/store_dir_coss.cc 2011-01-16 10:27:29.221680235 +0900
@@ -358,7 +358,7 @@
CossIndexNode *coss_node = (CossIndexNode *)e->repl.data;
e->repl.data = NULL;
dlinkDelete(&coss_node->node, &sd->cossindex);
- coss_index_pool->free(coss_node);
+ coss_index_pool->freeOne(coss_node);
sd->count -= 1;
}
@@ -931,7 +931,7 @@
memset(&block, '\0', 1024);
- for (off_t offset = 0; offset < max_size; ++offset) {
+ for (off_t offset = 0; offset < (off_t) max_size; ++offset) {
if (write (swap, block, 1024) < 1024) {
debugs (47, 0, "Failed to create COSS swap space in " << path);
}
これで良いみたい。
0888名無しさん@お腹いっぱい。
2011/01/18(火) 22:00:30すばらしい
make 通ったよ有難う
まだインストールはしていないので動くかどうかはまだ試せていない
0889885
2011/01/23(日) 15:29:270890名無しさん@お腹いっぱい。
2011/01/24(月) 21:35:12嗚呼…報告が遅くなってしまって申し訳ない
make 成功、make install 後、3.1 から conf を引っ張ってきて
ログ記録パス関係のいくつかのパラメータを書き換えたのち
squid -k parse でエラーはでなくなったのだが、
その後 squid -z での COSS ボリュームの生成に成功していない。
FATAL: Bungled squid.conf line 22: cache_dir coss /var/spool/squid/coss1 1024 block-size=512
Squid Cache (Version 3.2.0.4-20110123): Terminated abnormally.
Page faults with physical i/o: 0
設定が何か足らないのだろう
configure はこんなかんじ
./configure --prefix=/usr/local/squid32 --with-large-files --with-diskio="DiskThreads DiskDaemon AIO Blocking" --with-storeio="ufs diskd aufs coss"
0891名無しさん@お腹いっぱい。
2011/02/09(水) 12:15:12- Bug 3149: not caching eCAP adapted body
- Bug 3144: redirector program blocks while reading STDIN
- Bug 3140: memory leak in error page generation
- Bug 3137: RADIUS auth helper does not send identifier to RADIUS server
- Bug 3115: logging segfaults if access_log is set to a directory
- Bug 2968: Show the Vary: headers information in cachemgr objects report
- Bug 2959: remove SAMBAPREFIX dependency
- Bug 2868: icc doesn't like string literal in assert checks
- HTTP/1.1: Send 307 status on deny_info redirection
- HTTP/1.1: Support POST/PUT with no body
- HTTP/1.1: Allow persistent connections for Mozilla/3.0 User-Agents
- Support RFC 5861 Cache-Control: stale-if-error option
- Add ftp_eprt directive to disable EPRT extensions in FTP
- Fix external_acl_type grace=0 to obey TTL
- Fix IP/FQDN cache accounting to avoid idle caches on busy servers
- Prevent pipeline_prefetch misconfigurations breaking NTLM/Negotiate auth
- ... and some documentation updates and corrections
- ... and some portability and stability fixes
■ このスレッドは過去ログ倉庫に格納されています