nginx を Windows Azure で使ってみます。
動かすだけなら、Windows Azure ワーカーロール のスタートアップタスクで nginxを実行するだけなので簡単ですからね。
1.下記のサイトから nginx/Windows-x.x.xとなっている Windows 版の nginx をダウンロードし展開します。
nginx: download
http://www.nginx.org/en/download.html
※今回は nginx/Windows-1.1.5 をダウンロードして使用しています。
2.Windows Azureのワーカーロールプロジェクトを作成し、ダウンロードしたファイルを追加します。Azure SDK 1.5 から サービス定義ファイル(ServiceDefinition.csdef) で Contents タグが使えますので下記のように記載するだけです。コピー不要なのでラクですね。
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="nginx" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WorkerRole name="WorkerRole1" vmsize="ExtraSmall">
<!-- 省略 -->
<Contents>
<Content destination="nginx">
<SourceDirectory path="C:\temp\nginx-1.1.5" />
</Content>
</Contents>
</WorkerRole>
</ServiceDefinition>
上記の例では、パッケージ作成時に「C:\temp\nginx」のファイルが「%ROLEROOT%\approot\nginx」にコピーされます。
3.アクセス権の都合でデフォルトのままだとlogやtempフォルダを作成できません。そのためnginxフォルダの中に事前に下記フォルダを作成しておきます。また、ファイルがないとデプロイ時にフォルダが作成されないので、作成したフォルダの中に適当なファイルを入れておきます(例:dummy.txt)。
logs temp client_body_temp fastcgi_temp proxy_temp
4.nginx.exeを実行する下記スタートアップタスクを秀丸などで作成します。作成後、プロジェクトに追加し、出力ディレクトリにコピーを「常にコピーする」に変更します(今回は「startup.cmd」というファイル名で作成)。
@echo off netsh advfirewall firewall add rule name="nginx" dir=in action=allow program="%~dp0nginx\nginx.exe" enable=yes cd "%~dp0nginx" "%~dp0nginx\nginx.exe"
5.上記で作成したstartup.cmdをbackgroundで実行するように、ServiceDefinition.csdefに設定を追加します。
<WorkerRole name="WorkerRole1" vmsize="Small">
・・・・省略・・・・
<Startup>
<Task commandLine="startup.cmd" taskType="background" executionContext="elevated">
</Task>
</Startup>
</WorkerRole>
6.ワーカーロールのプロパティを開いて、エンドポイント(Internal, tcp, 80)を追加します。ポート番号は、nginx.confに記載されていますので合わせてください。

これで完了です。デプロイして問題なければ下記のようなページが表示されます。

タグ
Ajax AjaXplorer Android ASP.NET ASP.NET MVC Azure Bing Blob BlogEngine.NET c# Concrete5 FTP FTPServer HWC IIS LINQ log4net Mac memcached node.js Perl PHP Plugin PowerShell Server Core SQL Server SSL Twitter Umbraco WebDAV Web Deploy Web Role WebServer Webサイト Windows Azure Drive Windows Azure Table WinRM WordPress Worker Role イベントログ クラウドサービス サービスバス バリデーション メール 位置情報アーカイブ
- 2013年5月 (3)
- 2013年4月 (3)
- 2013年3月 (2)
- 2013年2月 (1)
- 2013年1月 (4)
- 2012年12月 (2)
- 2012年11月 (2)
- 2012年10月 (3)
- 2012年9月 (2)
- 2012年8月 (2)
- 2012年7月 (2)
- 2012年6月 (4)
- 2012年5月 (3)
- 2012年4月 (2)
- 2012年3月 (3)
- 2012年2月 (2)
- 2012年1月 (5)
- 2011年12月 (2)
- 2011年11月 (2)
- 2011年10月 (2)
- 2011年9月 (3)
- 2011年8月 (2)
- 2011年7月 (3)
- 2011年6月 (4)
- 2011年5月 (5)
- 2011年4月 (3)
- 2011年3月 (3)
- 2011年2月 (3)
- 2011年1月 (2)
- 2010年12月 (2)
- 2010年11月 (3)
- 2010年10月 (3)
- 2010年9月 (2)
- 2010年8月 (3)
- 2010年7月 (3)
- 2010年6月 (6)
- 2010年5月 (5)
- 2010年4月 (5)
- 2010年3月 (7)
- 2010年2月 (5)
- 2010年1月 (7)
- 2009年12月 (10)
- 2009年11月 (10)
- 2009年10月 (10)
- 2009年9月 (10)
- 2009年8月 (10)
- 2009年7月 (17)
- 2009年6月 (5)
ブログロール




