前にnginx-unitをmacで使ってみたが、pythonの勉強がてらflaskでかんたんなWebappを作った。
uWSGIを使ってもいいんだけど、前に使ったnginx-unitでやってみようと思い、再度やってみた。
前回と違うところ
・Homebrewで用意されるようになった。
ということで、前にソースから入れたものは消しておく。
$ make uninstall
をソースファルダでうっておく。
あとは公式の通りにインストール
https://unit.nginx.org/installation/#homebrew
ちなみにだが、Homebrewでインストールしたときは/usr/local/
から下に/varとか/tmpとかがある。
なので、unitdのconfigぶっこむようのソケットは
/usr/local/var/run/unit/control.sock
にある。
同様にログファイルは
/usr/local/var/log/unit/unit.log
(Linux系だと/var/log/unit/unit.log
)
に作られることになる。
さらにhomebrewでインストールされるパッケージの場所を変えている場合は、
brew --prefix
で確認しておくとよい。
config.jsonをぶっこんだときに「"error": "Failed to apply new configuration."」
上記のエラーが出まくってよくわからんときは、ログを見ましょう。
(上記のログファイルの場所がわからずに原因究明に手こずった…)
Python周りのエラーなのか、jsonの書き方に問題あるのかが詳細に出てきています。
↓例として
2020/08/20 23:19:03 [notice] 89400#2700292 process 89405 exited with code 1
2020/08/20 23:19:03 [warn] 89404#2700311 failed to start application "flask_app"
2020/08/20 23:19:03 [alert] 89404#2700311 failed to apply new conf
2020/08/20 23:19:03 [alert] 89403#2700310 failed to apply previous configuration
2020/08/20 23:19:07 [info] 89410#2700380 "flask_app" application started
2020/08/20 23:19:07 [alert] 89410#2700380 Python failed to import module "views"
こんな感じでちゃんと出てました。
config.json for flask
https://unit.nginx.org/howto/flask/
これもやはり公式を見たほうが早い。
注意すべき点は
Mind that Unit will look for an application callable in the WSGI module.
ここですね、appとかにしてると動かないので注意しましょう。
nginx-unitだと複数のアプリを動かしたりできるので、便利ですね。
次はrubyと共存させてみようと思う。(dockerでも使いたい)