SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Windows Azure新機能チュートリアル

Full IISでWebロールを使いこなそう

Windows Azure新機能チュートリアル(3)

ダウンロード sample.zip (1.1 MB)

ホストヘッダーの構成

 ここではホストヘッダーを用いた複数サイトの構成方法を説明します。このようにすることで、1つのIPアドレスとポートを使用して複数サイトをホストすることができます(図6)。

図6 ホストヘッダー概要
図6 ホストヘッダー概要

 サンプルファイルのHostHeaderSampleフォルダにソリューションが格納されています。ソリューションには、WebロールプロジェクトとASP.NET Webアプリケーションプロジェクトが定義されています(図7)。本サンプルでは、WebRole1を、xxx.examle.comとして、WebApplication1をyyy.example.comして定義してみます。

図7 ソリューション構成
図7 ソリューション構成

 ソリューションエクスプローラーからサービス定義ファイル(ServiceDefinition.csdef)を選択して開きます。サービス定義ファイルに、太字部分がサンプルでの追加部分です(リスト5)。

 ホストヘッダーを使用するには、Binding要素のhostHeader属性に定義します。このように定義することで、複数のWebサイトを1つのアドレスに割り当てることができます。

 *1の定義により、xxx.example.comでアクセスした場合はWebRole1に、*2の定義によりyyy.example.orgでアクセスした場合は、WebApplication1にそれぞれ割り振られます。

リスト5 Sites要素(ServiceDefinitison.csdef)
  <WebRole name="WebRole1">
    <Sites>
      <Site name="Web">
        <Bindings>
        <Binding name="Endpoint1" endpointName="Endpoint1" />
          <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="xxx.example.com"/>    *1
        </Bindings>
      </Site>
      <Site name="Web2" physicalDirectory="../WebApplication1">
        <VirtualDirectory name="Image" physicalDirectory="../WebRole1/Image"/>
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" hostHeader="yyy.example.net" />  *2
        </Bindings>
      </Site>
    </Sites>
  ...
  </WebRole>

 各サイトの違いが分かるように、内容の表示を行いますが、前述したサンプルを流用します(リスト4)。

 さて、このサンプルを実行するには、%windir%\System32\drivers\etc フォルダに格納されているhostsファイルの編集が必要です。それぞれのURLを、127.0.0.1へ割り当てます(リスト6)。

リスト6 hostsファイル
127.0.0.1 xxx.example.com
127.0.0.1 yyy.example.net

 本サンプルは、Windows Azureではなく、開発環境上のコンピュートエミュレーターで実行します。それぞれのURLでアクセスすると、表示されるWebサイトが割り振られることが確認できます(図8)。

 Windows Azure環境で実行確認したい場合は、パッケージを配置した後に、管理ポータルから割り当てられたIPアドレスを確認し、hostsファイルを編集してください。

図8 ホストヘッダーサンプルの実行結果
図8 ホストヘッダーサンプルの実行結果

まとめ

 Full IISとは、特別なIISではなく、通常利用しているIISと同じということが理解していただけたでしょうか。逆を返せば、今までWindows Azureに搭載されていたIISは制限されたものであったと言えます。

 今回はサービス構成ファイルを使用した範囲でのカスタマイズでしたが、次回はスタートアップタスクと組みあわせたIIS自体の構成変更方法について紹介します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
Windows Azure新機能チュートリアル連載記事一覧

もっと読む

この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

WINGSプロジェクト statemachine(statemachine)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5958 2011/06/09 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー