iva*_*ncz 8 python wsgi flask uwsgi
我正在开始使用 WSGI,直到现在,在一些教程的帮助下,我正在对 Flask 进行一些测试,前面有 uWSGI,因为 Flask 不是生产环境的好选择(不能扩展)好吧,默认情况下,它每次回答一个请求 - http://flask.pocoo.org/docs/0.12/deploying/)并且 uWSGI 提供了灵活性和更高的可靠性,产生了工作人员和进程。我错了吗?
我之前看到的大多数教程都指向在 WSGI 前面使用 Nginx 进行设置,但这真的有必要吗?我想要做的只是提供一种可扩展的方式来向我的 Flask 应用程序发送请求,具有更高的性能和可扩展性。
所以我有这个基本设置:
你好.py
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run(host='0.0.0.0', port=8080)
Run Code Online (Sandbox Code Playgroud)
wsgi.py
from hello import app
if __name__ == "__main__":
app.run()
Run Code Online (Sandbox Code Playgroud)
运行uWSGI:
uwsgi --socket 0.0.0.0:8080 --plugin python --wsgi-file wsgi.py --callable app --master --processes 4 --threads 2 &
Run Code Online (Sandbox Code Playgroud)
当我对环回地址执行 curl 时,我收到一个空回复..
curl http://127.0.0.1:8080
invalid request block size: 21573 (max 4096)...skip
curl: (52) Empty reply from server
Run Code Online (Sandbox Code Playgroud)
原谅我,但我看不到我错过了什么。这里有没有人在 WSGI 方面更有经验,可以指出这个设置的失败在哪里?任何帮助都会让我非常感激。
参考文档: https ://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-uwsgi-and-nginx-on-ubuntu-16-04 http://uwsgi-docs。 readthedocs.io/en/latest/WSGIquickstart.html
socket当您将 uwsgi 与 Web 服务器(例如 nginx)结合使用时,应使用您的选项。否则你应该使用http,所以
uwsgi --http 0.0.0.0:8080 --plugin python --wsgi-file wsgi.py --callable app --master --processes 4 --threads 2
Run Code Online (Sandbox Code Playgroud)
将工作。
生产环境(不能很好地扩展,默认情况下,它每次回答一个请求 - http://flask.pocoo.org/docs/0.12/deploying/)和 uWSGI 提供了灵活性和更高的可靠性,产生了工作人员和流程。我错了吗?
你是对的。
我之前看到的大多数教程都指向在 WSGI 前面使用 Nginx 进行设置,但这真的有必要吗?我想要做的只是提供一种可扩展的方式来向我的 Flask 应用程序发送请求,具有更高的性能和可扩展性。
嗯,nginx 被设计在前面并且拥有它比只有应用程序服务器(uwsgi)好得多。专业化,这是关键。让您的应用服务器专注于业务处理和 Python。
| 归档时间: |
|
| 查看次数: |
4925 次 |
| 最近记录: |