nginx unitの設定値を見てみる

まず現状のnginx unitの設定値がどうなっているのか調べてみる。

$ sudo curl --unix-socket /var/run/control.unit.sock http://localhost/
{
        "applications": {
                "example_python": {
                        "type": "python 3.6",
                        "user": "nobody",
                        "processes": 2,
                        "path": "/usr/share/doc/unit-python3.6/examples/python-app",
                        "module": "wsgi"
                }
        },

        "listeners": {
                "*:8400": {
                        "application": "example_python"
                }
        }
}

なんか良く分からないが、8400ポートはexsample_pythonというアプリケーションのリスナーに使われている。
アプリケーションの設定は"applications"の中で定義されていて、ポート8400にアクセスがあると、/usr/share/doc/unit-python3.6/examples/python-app というディレクトリにあるwsgiというモジュールを読み込んでいるらしい。wsgiファイルはwsgi.py が正式なファイル名だった。

では、ここから実験。
アプリケーションリスナー設定を削除してみる。

$ sudo curl -X DELETE --unix-socket /var/run/control.unit.sock http://localhost/listeners/*:8400
{
        "success": "Reconfiguration done."
}

アプリケーション設定も削除してみる。
$ sudo curl -X DELETE --unix-socket /var/run/control.unit.sock http://localhost/applications/example_python
{
        "success": "Reconfiguration done."
}

本当に削除されたのか確認。

$ sudo curl --unix-socket /var/run/control.unit.sock http://localhost/
{
        "applications": {},
        "listeners": {}
}

削除されて空っぽになっている。
この状態でポート番号8400にアクセスするとどうなるのか?

$ curl http://localhost:8400
curl: (7) Failed to connect to localhost port 8400: 接続を拒否されました

予定通り繋がらなくなっている。

じゃあ最初の設定を start.json というファイルに保存して、再設定を掛けたらどうなるのか?

$ sudo curl -X PUT -d @start.json --unix-socket /var/run/control.unit.sock http://localhost/
{
        "success": "Reconfiguration done."
}

成功したらしい。
ちゃんと動いているのか確認してみる。

$ curl http://localhost:8400
2018-07-13 01:49:38 PM

Python: 3.6.5 (default, Apr  1 2018, 05:46:30)
[GCC 7.3.0]

ENV Variables:

LANG    ja_JP.UTF-8
LANGUAGE        ja_JP:ja
PATH    /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
INVOCATION_ID   4495414f19f340b695fbcf64bf14c449
JOURNAL_STREAM  9:19378
DAEMON_ARGS     --log /var/log/unit.log --pid /run/unit.pid


動いているね。
ふむふむ、少しずつ分かってきたような。。。気もしてきた。

0 件のコメント:

コメントを投稿