Windowsのnginx
知られていること 追加機能の予定 |
WindowsバージョンのnginxはnativeのWin32 APIを利用します(cygwinのエミュレーションレイヤーではありません)select()
およびpoll()
(1.15.9) 接続処理メソッドだけが現在使われるため、高いパフォーマンスとスケーラビリティは期待できません。これとその他の幾つかの既知の問題により、nginx for Windows のバージョンは、betaバージョンと見なされています。今度こそは、XSLT filter, image filter, GeoIP module と embedded Perl language を除いてUnixバージョンとほとんど同じnginxの機能を提供します。
nginx/Windows をインストールするには、nginxの主流のブランチは全てのバグ修正が含まれているので、最新の主流のバージョン配布(1.23.1)をdownloadします。それから配布物を解凍し、nginx-1.23.1ディレクトリに移動します。そして nginx
を実行します。ドライブ c: のrootディレクトリの例:
cd c:\ unzip nginx-1.23.1.zip cd nginx-1.23.1 start nginx
nginxプロセスを見るために、tasklist
コマンドライン ユーティリティを実行します:
C:\nginx-1.23.1>tasklist /fi "imagename eq nginx.exe" Image Name PID Session Name Session# Mem Usage =============== ======== ============== ========== ============ nginx.exe 652 Console 0 2 780 K nginx.exe 1332 Console 0 3 112 K
プロセスの一つはマスタープロセスで、もう一つはworkerプロセスです。nginxが開始しない場合は、logs\error.log
のエラーログで理由を探してください。ログファイルが作成されていない場合は、その理由がWindowsのEventログに報告されているはずです。期待していたページの代わりにエラーページが表示された場合はも、logs\error.log
ファイルで理由を探してください。
nginx/Windows は実行しているディレクトリを設定ファイル中の相対パスのプリフィックスとして使います。上の例では、プリフィックスは C:\nginx-1.23.1\
です。dev設定ファイル内のパスは逆スラッシュを使ってUnixスタイルで指定します:
access_log logs/site.log; root C:/web/html;
nginx/Windowsは(サービスではなく)標準的なコンソールアプリケーションとして実行されます。次のコマンドを使って実施することができます:
nginx -s stop 高速なシャットダウン nginx -s quit グレースフル シャットダウン nginx -s reload 設定の変更、新しい設定で新しいworkerプロセスを開始、古いworkerプロセスのグレースフルシャットダウン nginx -s reopen ログファイルの開き直し
知られていること
- 幾つかのworkerを開始することができますが、実際にはそれらのうちの一つだけが全ての処理を行います。
- UDP プロキシの機能はサポートされません。
追加機能の予定
- サービスとして実行
- 接続処理メソッドとしてのI/O コンプリーション ポートの使用
- 一つのworkerプロセスの中で、複数のworkerスレッドの利用