Nginxの設定ファイルいじったらプロセスが閉じなくなった
Nginx使ってみたのですが、ちょっとあれって思ったので。
NginxとうWebサーバーとは何か、特徴は、、という説明は一旦ここでは省きます。機会があればまた纏めようかと。
Nginxは起動時ノーリアクション
Nginxを使ってまず思ったのは起動する時のリアクションが余りに薄いことです。
ターミナルでnginxと打つとサーバーが起動するのですが、リアクションがまったく皆無!
おかしいなーと思ってもう一度、コマンドを打ってもアドレスはもう使われてますよってエラーがでてしまいます。
もちろんブラウザで確認するとちゃんと動いているのでいいのですが。
今回は起動してても主張の少ないNginxのプロセスが残っちゃってたお話です。
confファイル変更するときはサーバーを落とす!
普通はどうするのか一般的な事はわからないのですが、Webサーバーとか起動しっぱなしでconfファイル変更して再起動、みたいなことってやりますよね?!
この時もNginxのポートを8080から8001に変更しようとしてnginx.confを変更して、サーバーをもう一回起動しようとして以下コマンドを打ったわけです。
1 |
nginx |
ポート8001で無事にサーバーは起動したもののどうやら8080のサーバーも残っている模様。
おかしいなと思って一度サーバーを切ることにして以下コマンドでサーバーを落とすと8001は消えたけど8080は元気に稼働中の様子。
1 2 3 |
nginx -s stop |
ならばと思いnginx.confのポートを変更してからstopを掛けてみましたが以下のようなエラーが表示され落ちない。
1 2 3 |
"/usr/local/var/run/nginx.pid" failed (2: No such file or directory) |
そのままもう一度サーバー起動したらどうなるのかと思ってnginxを打つとこんどは下のようなエラーが。
1 2 3 |
bind() to 0.0.0.0:8080 failed (48: Address already in use) |
仕方がないのでアクティビティモニターから強制終了することに。
Nginxの再起動は nginx -s reload を
や、専用のコマンド あるんだからもちろんそれを使うべきなんですよね。
うっかりnginxで普通に起動してしまったのでサーバー複数立ち上がってしまったという訳でした。
ちなみに8080で起動→ポートを8001に変更→nginx -s reload 実行、これで8080にサーバーが残ることなくちゃんと8001に変更されました。
nginx -s reopen というコマンド もあるのですが、こちらはエラーは出ないものの8080が残り、8001では起動しないという無害な感じになりました。
まとめ
今回はnginxでちょっとハマったお話でした。変更前後で気が付いたから良いですが変にプロセス残すと厄介なのできちんと管理していきたいですね。以上です!
ディスカッション
コメント一覧
まだ、コメントがありません