Flask+uwgis+nginx 部署python后台

毕设项目,需要用到一个图片对比识别的python后台端口,需要让python代码持续运行在阿里云服务器上。之前用tomcat, 也没用过nginx, 同时Flask半吊子,百度学习了一下,机缘巧合之下5个小时搞定了。
下面是我的过程:


Client <= > Nginx <=> uwsgi<===> Flask服务

端口开放

1、阿里云开放端口 90;设置安全组
2、防火墙开放端口 90;
参考:https://blog.csdn.net/qq_37152533/article/details/105372443

文件路径

/home/pictureMatch/
			├── run_admin.py 	#项目启动文件
			├── venv/ 			#虚拟环境的包
			├── uwsgi_conf.ini #uwsgi配置文件
			└── src
			    ├── _pycache_	
			    ├── api/ #下面还有其他py
			    └──util/ #下面还有其他py
			   
nginx的安装路径:/usr/local/nginx/
它配置文件路径: /usr/local/nginx/conf/nginx.conf

我flask的启动文件:

# -*- coding=utf-8 -*-
# run_admin.py
from src.api import api
from flask import Flask, render_template, jsonify
import importlib
import sys
importlib.reload(sys)

app = Flask(__name__)

app.url_map.strict_slashes = False

app.add_url_rule('/pictureMatch_cosin',
                 view_func=api.pictureMatch_cosin, methods=['POST'])

if __name__ == "__main__":
    app.run(debug=False, host='0.0.0.0', port=5002)

flask跑在5002端口

1、安装python 3

请借鉴其他博文

2、安装虚拟环境 virtualenv

安装:

pip install virtualenv

新建venv:

virtualenv venv

启用虚拟环境:

source venv/bin/activate

调用 指令后命令符前就会出现 (venv) 字样。 可通过 deactivate 退出虚拟环境。

在虚拟环境里面安装各种依赖包,pip install
尝试运行一下代码,可以通过浏览器访问到的。

3、安装uwsgi

pip install uwsgi
uwsgi的配置

我在我的项目文件路径下,新建文件:uwsgi_conf.ini

[uwsgi]
socket = 127.0.0.1:5002  
processes = 4   
threads = 2 
master = true
pythonpath = /home/pictureMatch
module = run_admin
callable = app
memory-report = true

flask跑在5002端口,socket = 127.0.0.1:5002

4、安装nginx

sudo apt-get install nginx
sudo /etc/init.d/nginx start

安装方式不行,请参考其他博文

nginx配置文件

nginx配置文件

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       90;
        server_name  39.111.111.111;#自己的地址
		location / {
             	include      uwsgi_params;
				uwsgi_pass   127.0.0.1:5002;  
                uwsgi_param UWSGI_PYHOME /home/pictureMatch/venv; 
				uwsgi_param UWSGI_CHDIR  /home/pictureMatch;
				uwsgi_param UWSGI_SCRIPT run_admin:app;
		}
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

location 的内容要和前面对应。
https://blog.csdn.net/qq_37152533/article/details/105372443

5、运行

1、nginx用配置方式启动:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

2、后台方式启动uwsgi:

uwsgi -d --ini /home/pictureMatch/uwsgi_conf.ini

要是为了查看请求过程情况,可以:

uwsgi  --ini /home/pictureMatch/uwsgi_conf.ini

3,可以用postman,进行测试了,88.54.44.33:90/pictureMatch_cosin

参考博文:

Nginx配置反向代理uwsgi
https://blog.csdn.net/cx776474961/article/details/82858318

Ubuntu上用nginx部署flask
https://www.oschina.net/translate/serving-flask-with-nginx-on-ubuntu

flask项目之部署到云服务器上
https://blog.csdn.net/weixin_44045514/article/details/99654528

Flask项目部署
https://www.jianshu.com/p/7b0be7c558dd

部署flask hello world到阿里云服务器
https://www.cnblogs.com/homeworknotes/p/11219902.html

阿里云部署Flask+WSGI+Nginx详解
https://yq.aliyun.com/articles/657026

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值