カメリアの記事

意味があることやないことを綴ります

nginx on Windows 11

nginx を Windows のサービスに登録した。その際に引っ掛かったことについて書いておく。

nginx の準備

nginx は nginx.org (NGINX(エンジンエックス)|日本公式サイトではない)から zip ファイルをダウンロードして解凍して配置する。ユーザフォルダ( C:\Users\user_name)ではサービスとして起動しない。

  • 起動 nginx
  • 停止 nginx -s stop

サービスに登録する

  • sc コマンドを使えばスマートだが分からないので WinSW を利用する
  • WinSW は実行ファイル本体と、コンフィグファイルを用いてサービスに登録する
  • 本体と同じフォルダにコンフィグファイルを用意し、実行ファイル本体を実行すれば登録できる。ターミナルから実行する
  • WinSW の置き場所はどこでもいい
  • コンフィグファイルは本体と同じ名前にする。例えば実行ファイルが WinSW-x64.exe ならコンフィグファイルは WinSW-x64.xml とする

コンフィグファイルの記述内容は下のようにする。

<service>
  <id>nginx</id>
  <name>nginx</name>
  <description>Http server.</description>
  <logpath>C:\Program Files\nginx\logs</logpath>
  <logmode>roll</logmode>
  <depend></depend>
  <executable>C:\Program Files\nginx\nginx.exe</executable>
  <startarguments>-p "C:\Program Files\nginx"</startarguments>
  <stoparguments>-p "C:\Program Files\nginx" -s stop</stoparguments>
</service>

stoparguments は複数形にする。そうしないとサービスとして起動に失敗する。複数の解説ページで単数形になっていてつまずいた。