Python 在nginx上运行烧瓶应用程序

Python 在nginx上运行烧瓶应用程序,python,nginx,flask,uwsgi,Python,Nginx,Flask,Uwsgi,我不知道我到底在做什么,但我正在nginx上尝试运行Flask。我把它归结为下面的简单代码。首先,我有一个烧瓶中的测试应用程序,如下所示: from flask import Flask, render_template app = Flask(__name__, static_folder='client', template_folder='client/html') def show_home_page(): return render_template("home.ht

我不知道我到底在做什么,但我正在nginx上尝试运行Flask。我把它归结为下面的简单代码。首先,我有一个烧瓶中的测试应用程序,如下所示:

 from flask import Flask, render_template

 app = Flask(__name__, static_folder='client', template_folder='client/html')

 def show_home_page():
    return render_template("home.html")

 @app.route('/')
 def server():
    return show_home_page()

 if __name__ == '__main__':
    app.run(threaded=True)
如果我运行python app.py,我可以访问并查看“Hello World”。接下来我读到我需要运行uwsgi,但不清楚我需要传递什么参数给它。我尝试了不同的方法,比如:

 uwsgi -s /tmp/app.sock --manage-script-name --mount ./=app:app
我还注意到,我需要将我的nginx conf文件设置为匹配,但我也被困在这一点上(我刚刚在端口5000上收到nginx的欢迎),而且它似乎没有与我的Flask应用程序链接。我在谷歌上搜索了一下,但还没有点击

server {
    listen       5000;
    server_name  localhost;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
        root   html;
        index  index.html index.htm;
    }

对于装有Nginx和uWSGI的烧瓶,您可以使用以下内容:

您是否在使用nginx反向代理?那么你不想在5000上使用nginx和flask,你能直接通过uwsgi访问该站点吗?在通过nginx发送连接之前,验证它是否工作可能更容易。如何验证我可以通过uwsgi访问?我不是uwsgi专家,但我过去使用它的方式是将其部署在http端口上。您不需要公开访问该端口,因为您最终计划在nginx之后部署,但这意味着您可以在浏览器中指定该端口。看起来这不是你现在要走的路线,但我想我很好奇为什么会这样。如果您还没有查看快速入门文档,那么查看一下这些文档可能会有所帮助:。他们给出了一个非常简单的例子,似乎与您的目标相符。您需要在nginx配置中设置
uwsgi\u pass
,然后nginx才知道如何将调用传递给您的uwsgi实例