Decremented Blog

プログラミング、釣り、工作など、ジャンルを特に定めず、適当に書かれたブログです。

[04WebServer] 1.92リリース準備中

2011-08-28 23:18:55 | プログラミング・開発
次期バージョン(1.92)をリリース準備中です。
ある程度動作テストを行って、問題なければリリースします(本日から一か月以内にはリリース予定)。

次期バージョンでは、サーバの安定性向上のために、サーバコアを改修しました。
しばらくは、変なバグが出てしまう可能性があると思われます。
既存の枯れたコードが良いのか、将来的な安定性向上を目指し、より安定動作しやすい新しいコードが良いのか、難しい所ですね。

ダイジェスト認証に関しては、これまでBasic認証+SSLで十分なセキュリティ強度が保てるため、対応していませんでした。
しかし、最近利用が増えたiPhone等のモバイル機器では、正式なサーバ証明書がないとSSLが利用できず、SSLの敷居が上がってしまったため、SSL無しでもある程度セキュリティを保てるように、ダイジェスト認証に対応しました。
ただ、ダイジェスト認証でも、パスワードが抜かれないだけで、ファイル等の通信内容は相変わらず丸見えです。


次の次のバージョンでは、問題の多いCGI周りの修正を行う予定です。
時間に余裕があれば、FastCGIに対応するかもしれません。

[主な修正点]
・ダイジェスト認証に対応
・高速回線利用時のデータ転送効率を向上
・ネットワークエラーやシステムエラー発生時の動作を改善
・サーバが過負荷状態となった場合の動作を改善
・複数の待ち受けポートを利用できるように修正(ポートの設定で、","区切りで複数のポートを指定)
・標準の最大接続数を50接続から100接続に変更。
・ディレクトリ設定の上下移動が保存されない不具合を修正

[内部的な修正点]
・ネットワーク通信にオーバラップI/Oを利用するよう修正
・OpenSSLとのインターフェースに独自のBIOを利用するよう修正
・サーバ負荷限界の判断ロジックを修正(処理中の接続数が最大接続数の90%を超えるか、未処理の接続数が最大接続数を超えると過負荷と判断)
・サーバ負荷限界を超えると過負荷モードに移行するよう修正(一定時間、すべてのアクセスが503エラーとなる)
・サーバ負荷限界を超えて503エラーとなっても、アクセスログが残るよう修正
・サーバ負荷限界を超えて503エラーとなっても、カスタムしたエラーページを返せるよう修正

[04WebServer] ダイジェスト認証とrealm

2011-08-28 00:46:06 | プログラミング・開発
04WebServerのダイジェスト認証への対応を行っています。
Basic認証でもSSLを使えば問題ありませんが、SSLはサーバ証明書の問題がありますので。

04WebServerでは、認証のrealm(認証場所の名前)にディレクトリ設定の名前を使っており、日本語の利用が可能です。
ダイジェスト認証では、認証のロジックにrealmが組み込まれているため、realmに日本語を指定すると、一部のブラウザで正常に動作しないようです。

IE8だと、SJISでrealmを送ると、文字化けせずに表示できますが、なぜか認証情報を送ってきません(UTF8だと文字化けしますが、認証は正常に行われます)。
Firefoxだと、SJISで送っても、UTF8で送っても文字化けする上に、こちらもに認証情報を送ってきません。

まあ、HTTPヘッダには、マルチバイト文字使ってはいけない事になってるので、しょうがないです。
apacheでも試してみましたが、同じような動作になるようです。

HTTPヘッダをUTF8に対応するRFC5987が出ていますが、対応している主要なブラウザはまだ無いようです。
FirefoxやChromeの次期バージョンでは対応しているようです。

[04WebServer] 04WebServer 1.91をリリースしました

2011-08-14 01:38:19 | プログラミング・開発
04WebServer 1.91をリリースしました。
更新点などは、ホームページをご覧ください。

今回の更新は、作者の自宅サーバが3/11の地震で壊れたため、そのリプレースに伴うものです。
サーバをWindows 7に入れ替えたため、04WebServerもWindows 7対応としました。
また、iPhoneからアクセスすることが増えたので、SSLの中間証明書対応と、WebDAVの互換性強化を行いました。

やっぱり、自分が必要としないと、開発するモチベーションが維持できないですね。
節電の関係で残業が減り、開発時間が確保できるようになったのも大きいですが。

ビルド環境の整備と、Webリリースマネージャの導入を行ったので、だいぶ修正→公開が楽になりました。
今後は気が向いたら修正して、リリースするかもしれません。
まあ、もう需要もあんまりないと思いますが。