<< 2024/04 >> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
小型Webサーバ開発中 その5
14/08/10 02:08 / pHTTPServer
なんだかんだ言って、徐々に形になってきました。
まず、全体設定で行っていた設定を各ドメイン単位で設定できるようにしました。 MIME やログの設定などは全体で設定を行いますが、個別に MIME 設定が必要な程、細かく設定が必要なケースはそもそも、これは使わないだろうってことで。 SSLv3 or TLSv1 の設定も追加されます。 SSL/TLS 設定はフレンドリ名と、証明書の保存場所(ちょっとスクリーンショットが古いので画面には無いですが)くらいです。 http の証明書は原則として、そのドメインに対して発行されますので、FQDN での設定などはありません。 しかし毎回毎回毎回毎回思うのですが、SSL/TLS の証明書と通信の暗号化は分離してくれませんかねぇ。 確かに、XSS などで対象のドメインが信頼できるサーバなのかどうかをチェックするのは重要なんですが、それとサーバクライアント間の暗号化は別の問題だと思うのですが。 あと認証は全体にも掛けられますが、ディレクティブでも行えるようにする予定です。 そっちができるようになったら、ルートに認証かければ全体で認証が必要ってできますので、この設定は消えるかもしれません。 https の設定は、もう1個選択肢が必要ですね。 http or https or http/https(both) みたいな。 この辺りは変わっていません。 ちょっとお気に入りの機能です。 対象ドメインのディレクトリの一覧を確認することができます。 実フォルダなのか、仮想フォルダなのかとか、どのメソッドが許可されているかなどを一元で確認することができます。 CGI で Execute を許可しているフォルダはどこだっけ?とか見れますね。 あと見た目は余り変わっていませんが、マルチコア・マルチスレッドになりました。 マルチコアというと CPU のコアっぽいんですが、この場合1プロセスで複数の http エンジン(コア)を動かせるようになりました。 なんでこんなのが必要かと言いますと、マルチドメインで http/https に対応すると、こんなケースが出てきます。 1) HTTP(80) - example.com 2) HTTPS(443) - example.com 3) HTTP(80) - example.org 単純に考えれば、3プロセス起動して、それぞれで待てばOK!になりそうなんですが、TCP/IP の仕様で基本的に1つのポートを複数で使いまわすことはできない。という制限があります。 (例外的に IP アドレスとポートを紐付けて、1つのサーバー機上に複数の IP アドレスを割り当て、この IP アドレスに対して、同じポート番号を指定する。ということは可能です。あんまりやりませんが。) その為、上記の例の場合は、下記ようなことをする必要が出てきます。 1) Port80 で example.com / example.org の処理を行う、http コアA 2) Port443 で example.com の処理を行う http コアB Unix系では、inetd / xinetd などがこの役目をしてくれるんですが、そういうスーパーサーバは Windows には基本的に無いので、これをメインスレッドで請け負って、Port80 にアクセスしてきたら、処理を httpコアA に渡す。Port443 にアクセスしてきたら、処理を httpコアB に渡す。というように処理するわけです。 これだけなら「じゃーコア2つあればいいよね」で終わるんですが、http は接続先のポートを指定して接続を行うことができる仕様がありますので、下記のような場合は・・・ 1) HTTP(80) - example.com 2) HTTPS(443) - example.com 3) HTTP(80) - example.org 4) HTTP(8080) - example.jp 3コア必要になる訳です。 ここらはマルチドメインで http/https 対応での最低ラインです。(スーパーサーバでもない限り他の方法では処理できない。) そして各コアがマルチスレッド対応になっており、同時に複数の接続を受け持ちます。 これでマルチコア・マルチスレッド対応ってことになります。 ちなみに、Apache は、更に負荷を分散する為の高級な処理を行っていて、ハイブリッド型(マルチプロセス・マルチスレッド)という処理を行っているようです。 実際にソースを読んだ訳じゃないのですが、おそらく 1)1プロセスに割り当てられる最大スレッド数を指定 2)通常はこのプロセス内で処理を行う。 3)上記の最大スレッド数の上限に達した場合「別のプロセスを起動して、上限を超えた分は、そちらで処理を行う」 4)メインスレッドは、各プロセスの負荷状況をチェックして必要になったら更にプロセスを増やすし、必要なくなったら停止する(多分) 最大接続数(スレッド数)が100だった場合、100まではプロセス1が担当、101から200まではプロセス2が担当、201から300まではプロセス3が担当と、どんどん増やしていく訳です。 ソフトウェアロードバランサを自前で持っているようなもんですね。 うわーメンドクサイ処理・・・ でも、高負荷状況でも安定して動作させるには必要な処理になってきます。 まぁ、pHTTPServer は簡単Webサーバですので、ここまでやる気力は余りないのですが(^-^; [更新日付:2014/08/23 00:29:53]
トラックバックを見る(0) Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+256fb2dda6cafc904ed1440ec2ae96298d9cf0aa] TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+256fb2dda6cafc904ed1440ec2ae96298d9cf0aa] 記事へのコメント コメントはありません |
@AKISoftOfficialをフォロー
掲示板 サポートBBS PMailServer BBS アクセスの多い記事
最新記事(カテゴリ別)
PMailServer2 Version 2.53 をリリースしました。
04/08 00:50 フリー版からの製品版移行時の MTA 並列数について 02/17 23:52 メールサーバーの開発を始めて20年 02/07 21:46 PMailServer2 Version 2.52a をリリースしました。 12/26 14:02 PMailServer2 Version 2.52 をリリースしました。 10/01 10:48 PMailServer2 Version 2.51b をリリースしました。 09/19 01:43 PMailServer2 Version 2.51b(仮) Memo 09/12 00:33 PMailServer2 Version 2.51a をリリース、及び脆弱性についてのお知らせ 09/05 01:15 PMailServer2 Version 2.51a Memo 08/21 00:48 アドレスV125(K5)のスターターリレーの交換 08/04 10:10 最新コメント
コメントはありません
UUアクセス数
今日は 257回
昨日は 203回 トータル 303559回 3ヶ月記事別ランキング
プロフィール
Z80から68系、8086系を経由して
Pascalに移行。現在は Delphiをメインに C/C#も囓ってみたり。 「無い物は作れ」の精神で年がら年中なにかを作っています。 すぐ自前で作りたがるので無駄に工数が上がったりして自爆してみたりもします。 好きな物は麺類とお煎餅 Blom内検索
BLOM Version 1.39 ©2007-15 A.K.I Software all rights reserved. |