gpt4 book ai didi

python - 使用 uwsgi 和 nginx 部署 Flask 应用程序

转载 作者:太空宇宙 更新时间:2023-11-03 15:13:56 25 4
gpt4 key购买 nike

我正在尝试部署一个我使用 Python 和 Flask 构建的简单网络应用。

我的应用具有以下结构:

/var/www/watchgallery/
+ app
+ __init__.py
+ views.py
+ templates
+ flask #virtual environment for Flask
+ run.py #script I used in my machine to start the development Flask server
+ watchgallery_nginx.conf
+ watchgallery_uwsgi.ini
+ watchgallery_uwsgi.sock

为了部署的目的,我点击了这个链接:http://vladikk.com/2013/09/12/serving-flask-with-nginx-on-ubuntu/

在本教程中,Flask 应用程序仅包含一个 hello.py 文件。他配置他的uwsgi文件的方式是这样的(/var/www/demoapp/demoapp_uwsgi.ini):

[uwsgi]
#application's base folder
base = /var/www/demoapp

#python module to import
app = hello
module = %(app)

home = %(base)/venv
pythonpath = %(base)

#socket file's location
socket = /var/www/demoapp/%n.sock

#permissions for the socket file
chmod-socket = 666

#the variable that holds a flask application inside the module imported at line #6
callable = app

#location of log files
logto = /var/log/uwsgi/%n.log

我试图将相同的逻辑应用于我的 uwsgi.ini 文件,但我做错了。这是我的文件的样子:

[uwsgi]
#application's base folder
base = /var/www/watchgallery

#python module to import
app = run
module = %(app)

home = %(base)/flask
pythonpath = %(base)

#socket file's location
socket = /var/www/watchgallery/%n.sock

#permissions for the socket file
chmod-socket = 666

#the variable that holds a flask application inside the module imported at line #6
callable = app

当我在我的本地机器上开发我的应用程序时,我运行这个命令来启动服务器:./run.py

这是我的run.py 文件:

#!flask/bin/python
from app import app
app.run(debug = False)

现在,我的问题是:考虑到我的 Flask 应用程序包含多个文件,我的 uwsgi.ini 文件应该是什么样子?

最佳答案

您的应用程序有多复杂并不重要。你告诉 uWSGI 条目在哪里,其余的通过 Python 导入正常处理。

在您的例子中,条目是 module = %(app)callable = app。所以 uWSGI 将加载模块并将请求发送到可调用的 Flask 应用程序。

现在由于请求将由 uWSGI 而不是 Flask 的服务器提供服务,因此您不需要 app.run(debug = False) 行。但是您可以使用这个技巧使开发和生产代码保持一致:

#!flask/bin/python

from app import app

if __name__ == "__main__":
app.run(debug = False)

关于python - 使用 uwsgi 和 nginx 部署 Flask 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23187947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com