Windows系统下部署Flask程序
1、nginx: nginx作为反向代理服务器,配合Tornado作为WSGI容器,实现Flask应用的部署。
2、Winsw:将flask程序注册到系统服务里,便于维护。
app.py 为Flask程序,代码如下:
from flask import Flask, request
# 创建一个Flask实例
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, Flask!'
if __name__ == '__main__':
# 启用flask服务
app.run(host="0.0.0.0", port=5000)
server.py 是一段 Tornado 代码,让 Tornado 作为 wsgi 服务器:
from tornado.wsgi import WSGIContainer from tornado.httpserver import HTTPServer from tornado.ioloop import IOLoop from app import app http_server = HTTPServer(WSGIContainer(app)) http_server.listen(5000) #flask默认的端口 IOLoop.instance().start()
通过 python server.py 可以启动 Flask 程序,Tornado 监控 5000 端口。
配置nginx反向代理,修改nginx.conf
http {
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
#root html;
#index index.html index.htm;
proxy_pass http://localhost:5000;
}
# other configurations
}
下载WinSW:https://github.com/winsw/winsw/releases
代码目录下配置winsw,python-server.exe 和 python-server.xml
<service> <id>PythonService</id> <name>Python Flask Service</name> <description>Python服务</description> <executable>D:\Python\Python312\python.exe</executable> <arguments>server.py</arguments> <!-- Optional settings --> <logpath>%BASE%\logs</logpath> <log mode="roll-by-size"> <sizeThreshold>10240</sizeThreshold> <keepFiles>8</keepFiles> </log> </service>
执行服务安装 python-server.exe install
浙公网安备 33010602011771号