uwsgi+Nginx 部署 flask应用

0.准备

在此之前需要安装python,已经添加了flask库,具体操作此处不做解释。

1.安装uwsgi

1.1安装依赖

yum install -y gcc zlib* sqlite-devel libXcomposite libXcursor libXi libXtst libXScrnSaver libXrandr atk at-spi2-atk gtk3 openssl-devel

1.2安装uwsgi

pip install uwsgi

1.3测试

  1. 创建测试文件
# -*- coding: utf-8 -*-
from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/hello', methods=['GET'])
def hello():
    result = {
        "res":"hell,world!"
    }
    return jsonify(result)
    
if __name__ == "__main__":
    app.run()
  1. 添加uwsgi.ini配置文件
[uwsgi]
#uwsgi启动时所使用的地址和端口
http=0.0.0.0:5000
#指向网站目录
chdir=/data

#python启动程序文件
wsgi-file=main.py
#python程序内用以启动的application变量名
callable=app

#处理器数
processes=4

#线程数
threads=2

#状态检测地址
stats=127.0.0.1:9191

#保存启动之后主进程的pid
pidfile=uwsgi.pid

#设置uwsgi后台运行,uwsgi.log保存日志信息 自动生成
daemonize=uwsgi.log
  1. 运行
    处于/data目录下,有uwsgi.inimain.py两个文件
uwsgi uwsgi.ini
  1. 访问
    浏览器访问服务器ip地址 xxx.xxx.xxx.xxx:5000

2.安装nginx

2.1 下载

wget http://nginx.org/download/nginx-1.19.0.tar.gz

2.2 解压并编译安装

解压文件,进入目录下,为了使用HTTPS,需要导入SSL模块

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install

--prefix指定安装路径

==p.s.==可以为nginx创建一个软链接

ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

2.3测试

  1. 查看SSL是否安装成功
nginx -V

configure argumens是否有相应的模块

  1. 修改配置
    需要修改一下uwsgi.ini
# http=0.0.0.0:5000
socket=127.0.0.1:5000

nginx.conf添加配置
默认情况下这段内容是被注释掉的,去掉注释即可,重要的是注释位置

server {
    listen       443 ssl;
    server_name  localhost;
    # 证书位置
    ssl_certificate      /data/ssl/your.pem;
    ssl_certificate_key  /data/ssl/your.key;
    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;
    location / {
        # 关键
        include uwsgi_params;
        # 需要和uwsgi.ini中的socket相同
        uwsgi_pass 127.0.0.1:5000;
    }
}
  1. 运行测试
    查看文件是否有问题
nginx -t

如果没有问题就启动并测试

nginx

3. 问题

如果访问失败,可能是一下几个问题(可能还有别的可能)

  1. 云服务器没有开放端口
  2. 开启了防火墙服务,但是没有开放端口
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值