前几天利用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. install uwsgi

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

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

保存配置文件,我们可以通过键入 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 ;
server_name 127.0.0.1; #访问ip location / {
include uwsgi_params;
uwsgi_pass 127.0.0.1:; #代理到uwsgi.ini里兼容的ip和端口
}
}

然后重新加载nginx配置

nginx -s reload

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

curl http://127.0.0.1:8080/

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

CentOS 下用 Nginx 和 uwsgi 部署 flask 项目的更多相关文章

  1. 使用Nginx和uwsgi部署Flask项目

    前言   之前用Flask框架开发了一个Python的Web项目,使用Nginx和uWSGI部署起来感觉挺麻烦,过程中还因为对Flask框架的不熟悉,花了好长时间才把应用完全部署起来.下面分享部署成功 ...

  2. CentOS 下部署Nginx+Gunicorn+Supervisor部署Flask项目

    原本之前有一部分东西是在Windows Server,但是由于Gunicorn不支持Windows部署起来颇为麻烦.最近转战CentOS,折腾一段时间,终于简单部署成功.CentOS新手,作为一个总结 ...

  3. linux上使用nginx、uwsgi部署django项目

    参考:CentOS7下部署Django项目详细操作步骤 注意事项: 在虚拟环境中操作,虚拟环境中安装nginx.uwsgi,虚拟环境外需安装uwsgi -- 临时关闭防火墙:systemctl sto ...

  4. Nginx+uWSGI部署flask项目

    uwsgi配置 uwsgi安装 安装uwsgi pip install uwsgi 启动uwsgi uwsgin --ini uwsgi.ini # 后台启动 nohup uwsgi --ini uw ...

  5. ubuntu服务器上用Nginx和Uwsgi部署django项目

    开发环境:ubuntu系统,python3环境 django项目目录: fast_foot 为项目根目录,app为项目应用 现在,我们登陆远程服务器 安装Nginx 安装好了,我们看一下nginx的配 ...

  6. 通过Nginx部署flask项目

    用Flask开发之后,很多人,喜欢用nohup python manage.py & 这样的形式,放到后台运行,其实这样只是个发开模式,很简陋,无法支持并发,进程监控等功能.所以采用nginx ...

  7. nginx + uwsgi 部署django项目

    因项目需求,需要部署django项目,这里是基础的nginx配合uwsgi部署django,后续会采用docker部署的方式 环境: centos7 python3.5.4 django2.1.4 u ...

  8. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  9. Ubuntu/CentOS下编译Nginx最基本参数

    Ubuntu/CentOS下编译Nginx安装基本参数,做个记录: groupadd www useradd -g www www ./configure --user=www --group=www ...

随机推荐

  1. java_注解

    注解1    注解的概念    jdk自带的注解    声明与使用注解的基本语法        注解的概念        在javaEE与开源框架中广泛使用,泛型在集合框架中广泛使用        注 ...

  2. vim 简单实用

    http://www.runoob.com/linux/linux-vim.html 编辑模式 : (同时打开两个文件) vim test.c test1.c -O     同时编辑两个文件    - ...

  3. nginx隐藏入口文件index.php

    网站的访问url可能是这样http://www.xxx.com/index.php/home/index/index 这种有点不美观,我们想达到如下效果http://www.xxx.com/home/ ...

  4. bootstrap之navbar

    container:固定960px宽度,(如果又引入了响应式样式,则会适当调整,例如1600*900,它会显示1200px) container-fluid:自适应屏幕宽度,即满屏显示. row和co ...

  5. 使用phpAnalysis打造PHP应用非侵入式性能分析器

    使用phpAnalysis打造PHP应用非侵入式性能分析器,查找PHP性能瓶颈. 什么是phpAnalysis phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发.测试及生产环 ...

  6. python3.6 内置函数

    python内置函数 # encoding: utf-8 # module builtins # from (built-in) # by generator 1.145 ""&q ...

  7. ionic3使用cordova创建自定义插件

    1 安装 plugman 插件 npm --registry https://registry.npm.taobao.org install -g plugman 2 新建组件 新建一个插件文件夹,进 ...

  8. Properties类学习笔记

    1.Properties是一个hashTable子类,但它只装String类型的值2.一个Properties集中有一个子Properties集为它的默认属性集,如果在Properties中找不到相关 ...

  9. java File处理

    /**************************************************************************************工具类********** ...

  10. PAT 甲级 1083 List Grades (25 分)

    1083 List Grades (25 分) Given a list of N student records with name, ID and grade. You are supposed ...