zoukankan      html  css  js  c++  java
  • CentOS 下用 Nginx 和 uwsgi 部署 flask 项目

    前几天利用flask 写了几个调用salt-api 的接口,需要上线到正式环境,搜了一下 都是 用 nginx + uwsgi 来部署,这里记录下关键的配置项。

    1.首先将代码上传到服务器上目录为:

    /home/www/wwwroot/salt-api

    2.配置服务器代理

    使用的代理一共有两个,nginx和uwsgi,先说明一下,如果不用nginx一样可以访问你的项目,使用nginx的目的是为了安全和负载均衡。配置了nginx做前端代理,uwsgi作后端代理的服务器(这里所说的前后端都是相对的位置,并无实际含义),在处理来自Internet的请求时,要先经过nginx的处理,nginx把请求再交给uwsgi,经过uwsgi才能访问到项目本身。

    没有nginx而只有uwsgi的服务器,则是Internet请求直接由uwsgi处理,并反馈到我们的项目中。
    nginx可以实现安全过滤,防DDOS等保护安全的操作,并且如果配置了多台服务器,nginx可以保证服务器的负载相对均衡。

    而uwsgi则是一个web服务器,实现了WSGI协议(Web Server Gateway Interface),http协议等,它可以接收和处理请求,发出响应等。所以只用uwsgi也是可以的。

    先安装uwsgi

    pip3.6 install uwsgi

    在你的项目根目录下创建一个配置文件uwsgi.ini(uwsgi支持多种配置文件格式,xml,ini,json等)

    #监听的ip和端口
    socket = 127.0.0.1:8080   
    
    #项目目录           
    chdir = /home/www/wwwroot/salt-api/
    
    #flask程序的启动文件,通常在本地是通过运行  
    wsgi-file = app.py      
    
    #程序内启用的application变量名                          
    callable = app      
    
    #处理器个数
    processes = 2  
    
     #获取uwsgi统计信息的服务地址
    stats = 127.0.0.1:9191     

    保存配置文件,我们可以通过键入 uwsgi uwsgi.ini 来启动uwsgi。

    如果需要后台方式启动并且指定日志:

    uwsgi uwsgi.ini -d /var/log/uwsgi/uwsgi.log

    编写nginx 配置 ,在vhosts里新增一个flask.conf文件

    [root@wechat02 vhost]# cat flask.conf 
    server {
        listen 8080;
        server_name 127.0.0.1; #访问ip
        
        location / {
          include uwsgi_params;
          uwsgi_pass 127.0.0.1:5000;  #代理到uwsgi.ini里兼容的ip和端口
        }
    }

    然后重新加载nginx配置

    nginx -s reload

    到此,我们终于完成了所有的工作,马上就可以访问自己的项目了。

    curl http://127.0.0.1:8080/

    如果一切顺利的话,显示的就是你想要的页面了,如果不是,首先查看一下ini里设置的日志文件。

  • 相关阅读:
    docker使用
    接口自动化python3+requests+pytest/unitest
    Django--日常操作
    Redis
    散碎
    Django-- 类视图 Mixin 扩展类
    Django--类视图
    Django--响应
    python高级--正则表达式
    python-数据类型-字符串--常用操作
  • 原文地址:https://www.cnblogs.com/loveyouyou616/p/10334042.html
Copyright © 2011-2022 走看看