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

 

posted on 2025-09-02 08:41  Ivan Sun  阅读(44)  评论(0)    收藏  举报

导航