毕设项目,需要用到一个图片对比识别的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