サンデープログラマーのブログ


<2019年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234



自宅サーバーにIISを導入する

2019/11/24  
まず、自宅サーバーであること。そのサーバーにIISを導入しようという話から始めたい。IISのサーバーの候補は、いくつか考えられる。まず、それを考えてみよう

1.製品版のIISの導入
ハードとソフトの調達で、安く見積もっても15万円以上かな。そこそこ満足の行く構成だと、30万円以上かな。

2.無償版のExpress IIS で構築
ソフトの設定などが、コマンド中心になってしなうので、難しいかな。マニュアルもないし。その様な状態では、導入後のセキュリティーが心配になる。これは、あくまでも開発用で、本番に使うには、敷居が高い。却下としておこう。

3.評価版のIISを導入(Windows Server 2019 Essentials)。製品版と全く同じ。
ネットでは、試用期間があるとされるが、導入した物には、それが見当たらない。ただ、ライセンス認証を行ってねと、画面の端っこに表示されているだけ。もしかしたら、時が経とうが、そのままかも知れない。一応、自分なりに期限を定めて、結論を出そう。

4.リバースプロキシと言う方法を使い、Windows10に付属するIISを使う。
Windows10 Pro に付属するIISは、一般的に言われているように、同時接続数が20を超えるとライセンス違反だとされる。20を超えるとどうなるのか、分からないが、好ましい状態ではない。これに関して、同時接続とは、15分の間に、20件の違うIPアドレスの接続だ。そんなに来ないよと言う説もある。ネットをぐっぐれば、計算根拠も明確だ。説得力もある。そんなページが出てくる。だが、確認した訳ではない。

そこで、VB.NETでプログラムを組んで、過去ログを解析してみた。その解析ロジックが正しいかどうかは、不安もあるが、結果は、有った。ライセンス違反の定義に引っかかる時が有った。解析したログでは、1か月に数分間程度だが、有った。ネット攻撃のタイミングと重なった様だが、有ってしまった。それをどう解釈するかが問題となる。

そこで、Apacheもレガシーを捨てられない、IISも導入するとなれば、浮かんで来るのが、リバースプロキシだ。自宅サーバーの入り口は、Apacheで、その内容によっては、リバースプロキシでIISに回す。IISから見れば、クライアントは、リバースプロキシ一つなので、同時接続数は、いつでも、1つだ。理論上、ライセンス違反にはならないハズだが、細かい規定を呼んでいないので、ハズだという事になる。

5.違反は、特異な一瞬なので、気にせずその瞬間は、ライセンス条項を無視する。Windows10の付録IISで良いではないかと言う考えだ。

さあ、どれにしよう。と言っても、順番が付けられるはず。1番は、いろいろ分かってからと言う事で、最後となる。5番は、4番が有るので、これもまた、候補から外すべきかも知れない。となれば、3番と4番を試す事になる。

3番に関して。古いパソコンで試してみる。Windows Server 2019 Essentials に関しては、ネットをググれば、導入の方法は詳しく書かれている。それを参考にした。Windows10のインストールとさして変わらない。IISに付属するOSは、まさにWindows10だ。問題は、パソコンが古いので、ディバイスドライバーだ。自分のパソコンは、一番新しいドライバーがVistaまでと来た。当然、マザーボード付属のインストーラーでは、ドライバーをインストールする事ができない。PCのアイコンを右クリックして、プロパティー、ディバイスマネージャーと進み、個々のハードに対して、ドライバーをそこから入れる事になる。Windows10とは、すごいね。これでVistaのドライバーでもディバイスドライバーが、入ってしまうのだから。

ポートは、80のままでよい。何せ、パソコンが違うのだから、Apacheと喧嘩する事はない。ちなみに、IISに付属のWindows10にXAMPPを入れてみたが、何ら問題なく動作する。

ここで注意が必要なのは、そのパソコンに開発環境と同じバージョンのMicrosoft Visual Web Developer Express を導入して置く事だ。自宅サーバでは、これが大事だ。ネットをググっても、この大事なことが書かれていない。そうでないと、データベースを使った際に、余計なトラブルに見舞われる。私の場合は、2010とだいぶ古いが、使い慣れて、反応の早い2010がお気に入りだ。今でも、Microsoftに入って、Expressで検索を掛け、Visual Studio 無償版のボタンの画面にたどり着いたら、その横のダウンロードをクリックすれば、古いVisual Studioを手に入れる事ができる。ただし、2010は、今では、製品登録をしたくても、登録キーのページがない。古いキーを持っていたら、それは、使えるようだが。

Apacheのリバースプロキシに関しても、ネットをググれば、丁寧な解説に辿り着ける。それで問題は無いと思う。参考までに、Apacheのhttpd.confファイルに以下の要領で4行を追加するだけで済む。
「追加」とは、http://ohayou.jp/追加/でアクセスすれば、次のパソコンに流してくれるという設定だ。パソコンは、自分でポートを変えても良いし、ネットワークの他のパソコンでも繋がる。まさに、上記の3番と4番をこれで試す事になる。

ProxyRequests off
ProxyPreserveHost On
ProxyPass /追加/ http://パソコン:ポート/
ProxyPassReverse /追加/ http://パソコン:ポート/