nginx+ uwsgi+flask部署python接口项目

背景

有一个项目,flask编写的,在本地可以使用,但是如何上传到服务器运行呢?

安装nginx

可以查看如何安装nginx,不再说明,也可以不安装。

当然,你可以使用docker 安装。

安装python环境

安装Anaconda3,官网下载linux版本安装即可。

编译安装uwsgi

下载和解压

cd ~
wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxf uwsgi-latest.tar.gz 

编译

cd uwsgi-2.0.19.1
python3 uwsgiconfig.py --build

提示环境问题,请安装编译环境

yum -y install gcc

在这里插入图片描述
安装

python3 setup.py install

查看版本,报错可忽略

uwsgi --version

遇到的问题

uwsgi: error while loading shared libraries: libicui18n.so.58: cannot open shared object file: No such file or directory

解决

which uwsgi

ldd /usr/share/anaconda3/bin/uwsgi

在这里插入图片描述

ln -s /usr/share/anaconda3/lib/libicui18n.so.58 /lib64/libicui18n.so.58
ln -s /usr/share/anaconda3/lib/libicuuc.so.58 /lib64/libicuuc.so.58
ln -s /usr/share/anaconda3/lib/libicudata.so.58 /lib64/libicudata.so.58

在这里插入图片描述

strings /usr/lib64/libstdc++.so.6|grep CXXABI

CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_TM_1

于是anaconda3 下的libstdc++.so.6移到/lib64

ll /usr/share/anaconda3/lib/libstdc++.so.6.0.26
ll /usr/lib64/libstdc++.so.6

查看是使用26版本替换19版本

cp /usr/share/anaconda3/lib/libstdc++.so.6.0.26 /usr/lib64/
rm -rf /usr/lib64/libstdc++.so.6
ln -s /usr/lib64/libstdc++.so.6.0.26 /usr/lib64/libstdc++.so.6

在这里插入图片描述

测试

首先要安装项目的依赖,跳过。

import json

from flask import Flask

app = Flask(__name__)

@app.route('/test', methods=['GET'])
def test():
  return 'ok'

if __name__ == '__main__':
    app.run()

运行

uwsgi --ini uwsgi.ini

停止

uwsgi --stop uwsgi.pid

实际项目测试

安装依赖

conda install pymysql -y
conda install configparser -y
conda install requests -y
conda install lxml -y

运行,代码略。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是基于 CentOS 操作系统的 Nginx + Uwsgi + Flask 部署服务的详细操作步骤: 1. 安装必要的软件包 ```bash yum install epel-release yum install nginx yum install python3 python3-pip pip3 install uwsgi flask ``` 2. 创建 Flask 应用程序 在服务器上创建 Flask 应用程序,例如: ```python from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run() ``` 3. 创建 uwsgi 配置文件 在服务器上创建一个 uwsgi 配置文件,例如: ```ini [uwsgi] module = wsgi:app master = true processes = 5 socket = /tmp/uwsgi.sock chmod-socket = 660 vacuum = true die-on-term = true ``` 其中,`module` 参数指定 Flask 应用程序所在的模块和变量名,`socket` 参数指定 uwsgiNginx 通信的 Unix 套接字文件位置。 4. 创建 Nginx 配置文件 在服务器上创建一个 Nginx 配置文件,例如: ```nginx server { listen 80; server_name your-domain.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/uwsgi.sock; } } ``` 其中,`listen` 参数指定监听的端口,`server_name` 参数指定服务器的域名或 IP 地址,`location` 参数指定请求 URL 的路径,`uwsgi_pass` 参数指定 uwsgiNginx 通信的 Unix 套接字文件位置。 5. 启动服务 在服务器上启动 uwsgiNginx 服务: ```bash uwsgi --ini uwsgi.ini & systemctl start nginx ``` 6. 测试服务 在浏览器中输入服务器的域名或 IP 地址,应该能够看到 Hello, World! 的输出。 以上就是在 CentOS 上使用 Nginx + Uwsgi + Flask 部署服务的详细操作步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值