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 は複数形にする。そうしないとサービスとして起動に失敗する。複数の解説ページで単数形になっていてつまずいた。