Windows服务器下,发布部署Python Flask项目,基于miniconda 虚拟环境,nginx服务反代理 tornado
今天,我用python + OpenCV 开发了一个项目,想使用Flask 发布到互联网,形成API 供内部系统使用。折腾了半天 终于弄好了, 记录下来,以便以后还会用到。
flasks 本身自带了有个开发版的服务器,但是不堪重用,因此才用到了tornado来代替flaks 。nginx主要是针对公网(互联网)发布的,通过Nginx反向代理到tronado 来实现python flaks项目的公网发布。
我的服务器环境:windows 2019 Datacenter(其他的Windows一样的)
需要用到的东西:
- miniconda 安装(exe文件,一路next即可,注意python版本的选择)
- nginx(下载,不用安装 配置一下即可)
- flask,tornado (在miniconda中安装即可, 使用pip命令 一个命令搞定)
- OpenCV,numpy(都是我代码中用到的东西,你没有用到的话 可以不装,只与你的代码有关)
第一步:安装miniconda
这一步很重要,但是却是最简单的。以后的安装都是在miniconda中进行的。
miniconda 下载地址:
https://docs.conda.io/en/latest/miniconda.html
选择自己需要的python版本,不同的版本 对应的安装文件不一样。
下载以后,一路Next 即可。注意,中间要勾选是不是添加到环境变量,要勾选。
安装完成以后,会在Windows 开始菜单中找到,miniconda的菜单。以虚拟环境base为例。
进入miniconda的终端界面,就可以在这里进行安装了。如下图:
第二步:在miniconda中安装模块
安装:tornado
pip install tornado
安装:flask
pip install flask
我的代码结构
server.py 是tornado的配置,另外一个 就是你的代码
tornado的配置如下:
from tornado.httpserver import HTTPServer
from tornado.wsgi import WSGIContainer
from yinzhang import app
from tornado.ioloop import IOLoop
s = HTTPServer(WSGIContainer(app))
s.listen(9900) # 监听 9900 端口
IOLoop.current().start()
其他安装(这就要看你代码了,用到什么装什么, 我的安装如下:)
//安装opencv
pip install opencv-contrib-python -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install opencv-contrib-python
pip install opencv-python opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple
//安装 numpy
pip install numpy
启动和测试系统:
启动以后 测试一下是不是成功
第三步:nginx代理 tornado 实现上公网
这张图片版权来自CSDN网友:stone0823
http {
server {
listen 80;
server_name localhost;
server_name 127.0.0.1;
charset utf-8;
location / {
root html;
index index.html index.htm;
proxy_pass http://localhost:9900;
}
# other configurations
}
参考网址:
参考