python服务器环境搭建Flask,uwsgi和nginx

环境配置 服务器配置 

【部署系统环境Ubuntu

使用python的Flask框架搭建好网页后台后,便要开始将网站部署到服务器平台了。为了部署python服务器,我选择使用uwsgi和nginx。

使用Nginx和uWSGI来运行Python应用

Nginx

Nginx是高效的Web服务器和反向代理服务器,同时并发高,部署简单,内存消耗小,最重要的是,支持uWSGI的uwsgi协议,可以直接使用,一个简单的uwsgi_pass就可以将动态内容交给uWSGI处理。

uWSGI

至于为什么不直接使用Flask运行程序而是uWSGI,那是因为,Flask都说明了,不要使用它来作为生产环境,那是因为,它说了,不要使用⊙﹏⊙‖∣°

安装uwsgi和nginx

安装uwsgi

安装uwsgi使用简单的pip命令即可安装

pip install uwsgi

查看uwsgi版本

uwsgi --version

安装Nginx

安装Nginx使用apt-get即可

apt-get install nginx
#如果是使用本机安装测试,由于默认不是最高权限使用以下命令即可:
sudo apt-get install nginx

配置文件

配置uwsgi

现在服务器环境也搭建好了,那么就要开始配置运行文件。假如此时我将python文件放在/var/www/myapp文件夹中。

配置uwsgi有很多种方式,例如直接使用命令行运行,不过我觉得将参数写在一个文件中,再运行是最好不过的了。【其他的配置方法可以百度或则google】

首先在myapp文件夹中创建一个配置文件"myapp.ini":

[uwsgi]
socket = 127.0.0.1:6001
;将Flask应用运行在这个端口
master = true
wsgi-file = app.py
;后端文件名称
callable = app
;设置在收到请求时,uWSGI加载的模块中哪个变量将被调用,默认是名字为“application”的变量。即是: app = Flask(__name__)
processes = 4
threads = 2
daemonize = server.log
;日志保存文件名称 【位置默认在app.ini 目录下】

配置nginx

/etc/nginx目录下新建文件夹app_nginx,进入app_nginx文件,新建myapp_nginx.conf文件

server {
listen 80; #监听服务器的80端口
server_name xxx.xx; #你的域名,前提是你要将你的域名解析到你的服务器的ip地址
charset utf-8;
location / {
include uwsgi_params; #添加uwsgi参数
uwsgi_pass 127.0.0.1:6001; #你的Flask应用运行端口,和上面的对应
}
}

然后配置修改/etc/nginx/nginx.conf文件

在如图所示位置【图片中倒数第4行】添加

include /etc/nginx/app_nginx/*.conf; #将app_nginx所有配置文件导入

ps:如果我们要搭建多个Flask应用,只需要再写一个confini就行了

启动

启动uwsgi

/var/www/myapp目录下启动uwsgi:

uwsgi myapp.ini

启动nginx

service nginx start #启动nginx
#或则 service nginx restart 重启nginx

完成

这时候,你在浏览器中输入你的域名,就可以看到一个漂漂亮亮的网页了


python服务器环境搭建Flask,uwsgi和nginx的更多相关文章

  1. python服务器环境搭建(2)——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  2. python服务器环境搭建——安装相关软件

    在上一篇我们在本地的虚拟服务器上安装好CentOS7后,我们的python web服务.自定义的python service或python脚本需要在服务器上运行,还需要在服务器安装各种相关的软件才行, ...

  3. python服务器环境搭建(1)——本地服务器准备

    去年十月底到新公司上班,由于公司旧系统存在各种问题同时不便于扩展,而公司领导对17年寄予很大的期望,用户量.收入要上一个新台阶,我经过全面评估后,决定全部用python重构过,开发一个基于微服务架构的 ...

  4. python3环境搭建(uWSGI+django+nginx+python+MySQL)

    1.系统环境,必要知识 #cat /etc/redhat-release CentOS Linux release (Core) #uname -r -.el7.x86_64 暂时关闭防护墙,关闭se ...

  5. python服务器环境搭建(3)——参数配置

    前面我们已安装好了python服务器运行所需要的相关软件,而最重要最繁琐的就是参数配置,写这篇就踩了好多坑,花了好多时间,遇到了各种各样的问题.好了费话少说,直接进入本篇话题. PS:本人不是专业的运 ...

  6. python开发环境搭建

    虽然网上有很多python开发环境搭建的文章,不过重复造轮子还是要的,记录一下过程,方便自己以后配置,也方便正在学习中的同事配置他们的环境. 1.准备好安装包 1)上python官网下载python运 ...

  7. Eclipse中Python开发环境搭建

    Eclipse中Python开发环境搭建  目 录  1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...

  8. LNAMP服务器环境搭建(手动编译安装)

    LNAMP服务器环境搭建(手动编译安装) 一.准备材料 阿里云主机一台,操作系统CentOS 6.5 64位 lnamp.zip包(包含搭建环境所需要的所有软件) http://123.56.144. ...

  9. CentOS下Web服务器环境搭建LNMP一键安装包

    CentOS下Web服务器环境搭建LNMP一键安装包 时间:2014-09-04 00:50来源:osyunwei.com 作者:osyunwei.com 举报 点击:3797次 最新版本:lnmp- ...

随机推荐

  1. hdu 4920

    http://acm.hdu.edu.cn/showproblem.php?pid=4920 给定两个n阶矩阵,求矩阵相乘后模3. 直接搞肯定会超时 特殊处理1和2的情况 实际上是水过的..... 貌 ...

  2. 有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做

    有人在用fastReport作报表时处理过字体自动缩小的问题吗,怎么做  我来答   浏览 49 次 1个回答 #吃瓜大会# Angelababy演技被吐槽, 你觉得她的演技怎么样? 最佳答案 热心 ...

  3. 合成的默认构造函数定义为delete的一种情况(针对C++11标准)

    1. 默认初始化 如果定义变量时没有指定初值,则变量会被默认初始化,此时变量被赋予了"默认值". 对于类类型的变量来说,初始化都是依靠构造函数来完成的.因此,即使定义某个类的变量( ...

  4. INDEX--从数据存放的角度看索引2

    在上次<INDEX--从数据存放的角度看索引>中,我们说到"唯一非聚集索引"和“非唯一非聚集索引”在存储上有一个明显的差别:唯一非聚集索引的非叶子节点上不会包含RID的 ...

  5. 【PHP】当mysql遇上PHP

    博客提纲 利用PHP连接mySQL数据库 两套接口:面向对象和面向过程 实现写改删查(CUBD)实例 通过prepare语句处理相同类型的不同SQL语句 通过bind_param()绑定参数,及相关注 ...

  6. UCore-Lab0

    日期:2019/3/31 内容:UCore-Lab0 一.UCore实验 实验 说明 关键词 Lab1 bootloader的实现 中断 Lab2 物理内存管理 x86分段/分页模式 Lab3 虚拟内 ...

  7. svn重新安装后报You need to upgrade the working copy first错误

    问题来源 最近重新安装了操作系统,安装了一个最新版的svn,提交代码的时候报了一个错误:You need to upgrade the working copy first,!网上找了很多解决办法,都 ...

  8. js的相关函数封装(正则表达式,获取url参数,时间格式化)

    一:// 验证中文名称 function isChinaName(name) { var pattern = /^[\u4E00-\u9FA5]{1,6}$/ return pattern.test( ...

  9. 【xsy1130】tree 树形dp+期望dp

    题目写得不清不楚的... 题目大意:给你一棵$n$个节点的树,你会随机选择其中一个点作为根,随后随机每个点深度遍历其孩子的顺序. 下面给你一个点集$S$,问你遍历完$S$中所有点的期望时间,点集S中的 ...

  10. linq查询时查询语句中附带多个查询时“已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭”

    主要原因是因为EF采用的 DataReader来进行数据的存储,此时connection使用的是同一个. 例如: list = _tzNewsService.GetAll().Where(w => ...