如何更新在 ubuntu 上通过 uWSGI 和 Nginx 部署的 Flask API 代码?

som*_*ode 1 python api ubuntu nginx flask

我按照指南在这里设置我的 api:https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-14-04

它工作得很好,我现在可以成功地对我的 api 进行查询。我的问题是,现在我想调整我的 Flask 应用程序/API 以执行稍微不同的操作并添加功能,但我正在 ping 的 API 似乎是旧的,尽管我已通过 ssh 更新了服务器上的 Flask .py 文件。我尝试完成教程中的所有步骤,希望能够刷新它访问的代码,但似乎没有任何效果。我尝试过的一些命令是:

sudo nginx -t

sudo service nginx restart
Run Code Online (Sandbox Code Playgroud)

我该如何执行此操作并 ping 更新的 Flask .py 文件?

根据我尝试过的建议:

restart myproject
Run Code Online (Sandbox Code Playgroud)

但这给出了以下错误:

restart: Rejected send message, 1 matched rules; type="method_call", sender=":1.8" (uid=1000 pid=2596 comm="restart thonapi ") interface="com.ubuntu.Upstart0_6.Job" member="Restart" error name="(unset)" requested_reply="0" destination="com.ubuntu.Upstart" (uid=0 pid=1 comm="/sbin/init ")
Run Code Online (Sandbox Code Playgroud)

ham*_*utt 5

您正在重新启动 Nginx,但没有重新启动 uwsgi。Nginx 只是一个将请求路由到 wsgi 应用程序的代理服务器。当你改变 Nginx 的配置时,这些命令就会起作用。但是当 wsgi 应用程序发生更改时,您必须重新启动 uwsgi 服务。

您可以通过以下命令重新启动服务。这取决于 init 系统服务正在使用什么

如果服务使用systemd系统。

sudo systemctl restart myproject

否则,如果它使用 upstart 脚本。

sudo restart myproject

如果全部失败,您可以使用或者如果您不知道正在使用的 init 系统:

sudo service restart myproject