При использовании с Flask Nginx действует как прокси-сервер, а это означает, что нет необходимости перезапускать его, когда вы хотите перезагрузить приложение Flask.Вам нужно позаботиться о uWSGI, так как uWSGI находится посередине между приложением Flask и Nginx и отвечает за переадресацию всех запросов к вашему приложению, а также за его запуск.
Решение 1
Один из распространенных подходов заключается в добавлении следующего в uwsgi_conf.ini
:
py-autoreload = 1
. Это сообщит uWSGI, что он должен отслеживать метки времени файлов каждую секунду, и перезагружатьприложение запускается.
Решение 2
Отправьте команду изящной перезагрузки в uWSGI Master FIFO :
Добавьте следующее к вашему uwsgi_conf.ini
:
master-fifo = /var/run/flask_uwsgi_fifo
и затем перезагрузите uWSGI, как только вы закончите с изменениями исходного файла Flask:
$ echo r > /var/run/flask_uwsgi_fifo
Solution 3
Аналогично решение 2 , но через touch-reload
.
Добавьте следующее к вашему uwsgi_conf.ini
:
touch-reload = /var/run/flask_touch
И затем перезагрузите приложение с помощью:
$ touch /var/run/flask_touch
Решение 4
Отправьте SIGHUP
в файл pid uWSGI.
Добавьте следующее к вашему uwsgi_conf.ini
:
safe-pidfile = /tmp/flask.pid
А затем перезагрузите приложение с помощью:
$ kill -HUP `cat /tmp/flask.pid`
или
$ uwsgi --reload /tmp/flask.pid