Flask + Nginx + uWSGI部署

备注:如果需要在虚拟环境中部署的话,首先需要创建虚拟环境,然后进入虚拟环境进行部署。此处环境是进入虚拟环境中进行部署;这是Flask框架搭建的最简单的示例,运用了flask_script拓展,启动命令python manage.py runserver。

 

环境:

  1. 操作系统:ubuntu16.04

  2. 部署框架:Nginx + uWSGI

  3. python环境:python3.6.4

 

需要安装: 

1. # 安装nginx
sudo apt-get install nginx

2. # 最好在虚拟环境中安装uwsgi
pip install uwsgi -i https://pypi.doubanio.com/simple/

3. # 安装项目所有依赖包
pip install -r requirements.txt -i https://pypi.doubanio.com/simple/

 

开始部署:

  1. 将自己的项目放在服务器上;

  2. 进入项目中,创建test_nginx.conf和test.ini文件(一个是nginx的配置文件,一个是uwsgi的配置文件)

  

   3. 编辑test_nginx.conf文件;

server {
    listen 9900;
    server_name 192.168.4.129;          # 服务器公网ip

    location / {
        # 文件允许大小,三条一起写
        proxy_buffer_size 64k;
        proxy_buffers   32 32k;
        proxy_busy_buffers_size 128k;

        include uwsgi_params;         # 注:必须写,uwsgi别写成wsgi
        uwsgi_pass 127.0.0.1:7799; # 注:参数是uwsgi_pass,socket通信地址不加http://
        access_log /var/log/nginx/access.log;
        error_log  /var/log/nginx/error.log;
    }
}

  4. 添加软连接,将项目中的test_nginx.conf连接到nginx指定的目录中(注:写绝对路径); 

sudo ln -s /home/k8s-node1/pythonFiles/untitled/test_nginx.conf /etc/nginx/conf.d/

  5. 编辑test.ini的uwsgi配置文件:

[uwsgi]  # 不能忘记写
master = true
home = /home/k8s-node1/.pyenv/versions/env-3.6.4 # 虚拟环境地址
chdir = /home/k8s-node1/pythonFiles/untitled  # 项目目录
wsgi-file = manage.py  # 项目启动文件
callable = app             # 项目可执行对象
socket = 127.0.0.1:7799  # 与nginx进行socket通信的地址,必须一样
processes = 4
threads = 2
buffer-size = 32768
stats = 127.0.0.1:9091

  6. 重新启动nginx: 

sudo /etc/init.d/nginx restart

  7. 在项目中启动test.ini文件:

uwsgi --ini test.ini &    #  & 后台运行

 

  备注: 

1. # 杀死uwsgi全部进程
pkill -f uwsgi -9

2. # 基本的启动结果

 

 3. 在浏览器中通过公网ip:端口/url  访问项目即可~~~

 

https://www.mephisto.site/2018/07/Flask-+-UWSGI-+-Nginx%E9%83%A8%E7%BD%B2/

 

 

 

 

posted @ 2019-11-07 16:58  aidenzdly  阅读(196)  评论(0编辑  收藏  举报