はじめに
本カテゴリーでは、Windowsにnginxをサービスを起動するまでの手順について説明します。
2017年4月29日時点、http://nginx.org/en/docs/windows.htmlに
WindowsとLinux、Unixとの違いやWindowsバージョンについて以下の内容を明記しています。
- Cygwinを用いずWin32APIを利用している点
- select()接続処理メソッドのみ利用しているため、高いパフォーマンスとスケーラビティが期待できない点
- 2017年4月29日時点のnginx1.12はWindowsバージョンにおけるβ版として認識して欲しい主旨
- XSLTフィルタ、画像フィルタ、GeoIPモジュール、埋め込みPerlを除いてUnix版のnginxの基本機能を提供している点
2017年4月時点の筆者の見解としては、Windowsサーバを導入した時点で、
webサーバを立てる場合には、MicrosoftIISを利用した方が良いと思います。
本書では、WindowsPC以外にLinux、Unixサーバを保持していない方がnginxを学習することを目的として
WindowsPC(又はサーバに)にnginxをインストールすることを想定しています。
本頁に利用した機器の設定です。
呼称 |
OS |
CPU |
バージョン |
IP |
その他 |
作業用PC兼Webサーバ |
Windows10 |
Intel Corei7 2コア |
Home Edition |
192.168.109.2 |
ルーターに接続 |
インストール手順
Windows版のインストーラはシンプルです。本家nginxサイトからstableバージョン(安定版)のzipファイルをダウンロードし、解凍するだけです。
サービスとして常駐させる手順だけWindowsのサービスの知識が若干必要になります。
- 本体のダウンロード
nginx:downloadから「nginx/Windows-1.12.0」(2017年4月末時点)のリンクを押下します。
- ダウンロードファイルの管理
「C:\Users\貴方のアカウント\Downloads」にダウンロードしたファイルを
「C:¥downloads¥web¥nginx¥windows」に移動します。
- 展開先ディレクトリの作成
「C:¥developer¥web¥nginx」ディレクトリを作成します。
ディレクトリ管理のポリシーを記載しています。
サーバとして利用する場合には「c:¥nginx」でも問題ありません。
- 解凍
「C:¥downloads¥web¥nginx¥windows¥nginx-1.12.0 .zip」を
「C:¥developer¥web¥nginx」ディレクトリに展開します。
- 展開後のnginx.exeの位置
「C:¥developer¥web¥nginx¥nginx-1.12.0¥nginx.exe」になります。
nginxの起動
- [Windows]メニュー右クリック-[コマンドプロンプト]を実行し、コマンドプロンプトを起動します。
- 「cd C:¥developer¥web¥nginx¥nginx-1.12.0¥」コマンドを実行します。
- 「nginx start」コマンドを実行します。
- Windows セキュリティの重要な警告ウィンドウが表示されます。
個人学習用や開発のためのインストールのため「プライベートネットワーク・・・」のチェックボックスを選択します。
「アクセス許可」ボタンを押下して下さい。
- コマンドプロンプトから「tasklist」コマンドを実行します。
「nginx.exe」のプロセスが2つ起動されている事を確認します。
- webブラウザを起動し、URLに「http://localhost」を指定します。
以下のデフォルト画面が表示されることを確認します。
nginxの停止
nginxを停止するには、カレントディレクトリを「C:¥developer¥web¥nginx¥nginx-1.12.0¥」して、
「nginx -s stop」を実行します。
nginxのプロセスは、バックグラウンドサービスのためコマンドプロンプトを終了してもnginxプロセスはOSに常駐します。
nginxサービスの登録
2017年4月末時点において、初めにWindowsをサービス化するには、
- Visual Studio 2012を利用してサービスexeの作成。MS Windows サービスを作成する参照
- 「nssm」を利用する
2.nssmを利用した方法について説明します。
- nssmダウンロードサイト頁のLatest release [nssm 2.24 ]リンクを押下します。
- 「nssm-2.24.zip」ファイルを「C:¥downloads¥tools」に保管します。
- 「nssm-2.24.zip」ファイルを「C:¥developer¥tools¥nssm」に解凍します。
- コマンドプロンプト(管理者)を起動し、「C:¥developer¥tools¥nssm¥nssm-2.24」に移動します。
- OSが32bitの場合には「win32」を64bitの場合には「win64」ディレクトリに移動します。
- コマンドプロンプトから「nssm install nginxを実行します。」
- 以下のようにnginxのインストール先を指定します。
- 「Install Service」ボタンを押下するとサービスが登録されます。
- コマンドプロンプトから「services.msc」を実行し、サービスウィンドウを表示します。
- サービスウィンドウからnginxを選択し、「開始」ボタンを押下します。
- webブラウザから「http://localhost」にアクセスし、nginxのindex.htmlが表示されることを確認します。
- PC(又はサーバ)を再起動し、nginxサービス(実際にはnssmプロセス経由のnginx)が起動しnginxプロセスが実行されていることを確認します。
- ※.サービスを削除したい場合には、「nssm remove nginx」を実行して下さい。
Windows10で動作確認しましたが、問題なくサービス化できました。
但し「nssm」サイトの継続性が怪しくnginxの動作保証をしていないのでこの方法は、nginx.incが
windows版の開発とサービスインストール用のインストーラができる暫定的な対象方法であると認識して下さい。
Windows版nginxの注意事項
nginx for windows頁の「Known issues(注意事項)」に以下の3点が明記されています。
- 複数のworkerプロセスを起動することができますが、実際に処理を実行しているのは1つです。
- workerプロセスは1024以上の同時接続を処理できません。
- UDPプロキシ機能はサポートされていません。
このように2017年時点では、Windowsではnginxの良さである10000件以上の同時接続数の処理や
workerプロセスがコアに対応して(1コアに1worker)処理する機能が実行できないため、
nginxは本家サイトにも記載されているようにβ版で簡易学習用として捉えた方が良いでしょう。