[Python] uWSGI和Nginx是否需要為Flask應用程序提供服務?


Answers

大概你已經有一個Flask應用程序對象和路線設置,但是如果你像這樣創建應用程序:

import flask

app = flask.Flask(__name__)

然後設置你的@app.route() ,然後當你想啟動應用程序:

import gevent

app_server = gevent.wsgi.WSGIServer((host, port), app)
app_server.serve_forever()

那麼你可以直接運行你的應用程序,而不必告訴gunicorn或uWSGI或其他任何東西來運行它。

我有一個案例,我想燒瓶的實用程序來建立一個Web應用程序(一個REST API服務),並發現無法與其他非燒瓶,非Web服務元素燒瓶組成一個問題。 我最終發現了gevent.wsgi.WSGIServer ,這正是我所需要的。 在調用app_server.serve_forever() ,當應用程序想要退出時,可以調用app_server.stop()

在我的部署中,我的應用程序正在監聽localhost:使用flask和gevent,然後我有nginx反向代理另一個端口上的HTTPS請求,並將它們轉發到本地主機上的燒錄服務。

Question

使用uWSGI和Nginx設置Flask非常困難,即使使用構建腳本也需要相當長的一段時間,並且必須記錄在稍後要復制的指令中。

如果我不在服務器上計劃一個很大的負載(它是公開的),那麼在沒有uWSGI的情況下運行它有意義嗎? (Flask可以監聽一個端口,Nginx可以轉發請求嗎?)

是不是有意義甚至不使用Nginx,只是在端口上運行裸露的燒瓶應用程序?