先开一贴,有空来总结下前段时间的网站部署情况。此次部署采用Gunicorn + Nginx + supervisor的组合在VPS环境中部署flask网站应用。

Ubuntu环境准备##

准备python环境

$ sudo apt-get update
$ sudo apt-get install python-dev python-pip python-virtualenv

然后安装nginx

$ sudo apt-get install nginx

本网站在/home/jack/目录下建立一个me的文件夹(我是直接git clone,此处说明下,克隆到哪,直接切换到相应的目录Clone即可

Gunicorn##

Gunicorn 绿色独角兽 是一个Python WSGI UNIX的HTTP服务器。这是一个pre-fork worker的模型,从Ruby的独角兽(Unicorn )项目移植。该Gunicorn服务器大致与各种Web框架兼容,只需非常简单的执行,轻量级的资源消耗,以及相当迅速。

安装Gunicorn

Gunicorn需要安装在相应的virtualenv环境下,安装前需要激活venv(在me文件夹下,执行 source venv/bin/actiavte)。

(venv) $ pip install gunicorn

运行Gunicorn

cd到你的项目根目录下,此处为/me文件夹下:

(venv) $ gunicorn -w 4 -b 0.0.0.0:8000 wsgi:application

这使得服务器可以被公网IP访问

注意:此处wsgi是一个flask实例引导的py文件,appliancation即创建的flask实例。此处和 Flask 项目中常用的 manage.py 引导脚本是没有半点毛关系,需要做的是引入manage.py的flask实例。

拿本网站举个例子吧, 很简单的说:

#wsgi.py

from index import application

if __name__ == '__main__':
application.run()

Nginx 的配置##

关于Nginx后续再补充,直接编辑Nginx的默认配置文件。(/etc/nginx/site-avalidable/default)

建议先备份default文件
sudo cp /etc/nginx/site-avalidable/default /etc/nginx/sites-available/default.bak server {
listen 80;
server_name example.org; # 这是HOST机器的外部域名,用地址也行(我直接填的IP地址) location / {
proxy_pass http://127.0.0.1:8000; # 这里是指向 gunicorn host 的服务地址
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
} }

完成配置Ngnix后需要重启ngnix服务!

sudo service nginx restart

Gunicorn作为服务运行##

这里有两种方法实现

  1. 配置成linux服务随机启动
  2. 使用supervisor管理gunicorn

    目前使用supervisor配置成功,后面有时间继续更新

这已经是我第一次补充了......................

首先安装supervisor

pip install supervisor

配置supervisor

/etc/supervisor/下有两个文件:文件夹,conf.d;文件supervisord.conf

supersord.conf文件保持不动,尤其include内的内容,这引导接下来的配置的内容。

conf.d内创建项目的配置文件:me.conf

重新载入配置文件,并启动me

$ sudo supervisorctl reload
$ sudo supervisorctl start me

查看运行状态

$ sudo supervisorctl status

参考####

  1. http://edward.io/blog/flask-gunicorn-nginx.html
  2. http://www.cnblogs.com/Ray-liang/p/4837850.html
  3. http://www.jianshu.com/p/be9dd421fb8d
  4. http://www.lxway.com/49621091.htm
  5. https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-14-04
  6. http://beiyuu.com/vps-config-python-vitrualenv-flask-gunicorn-supervisor-nginx/
  7. http://defshine.github.io/deploy-flask-app-on-do.html
  8. http://www.onurguzel.com/how-to-run-flask-applications-with-nginx-using-gunicorn/
  9. https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications-with-gunicorn-and-nginx-on-ubuntu-14-04

Python flask网站部署总结的更多相关文章

  1. 【Azure 应用服务】Python flask 应用部署在Aure App Service中作为一个子项目时,解决遇见的404 Not Found问题

    问题描述 在成功的部署Python flask应用到App Service (Windows)后,如果需要把当前项目(如:hiflask)作为一个子项目(子站点),把web.config文件从wwwr ...

  2. 【Azure 应用服务】Python flask 应用部署在Aure App Service 遇见的 3 个问题

    在App Service(Windows)中部署Flask应用时的注意事项: ● 添加Python扩展插件,Python 3.6.4 x64: ●● 配置 FastCGI 处理程序,添加Web.con ...

  3. python flask应用部署

    失败版本:flask+uwsgi ini配置文件 [uwsgi] callable = app ;//程序内启用的application变量名 home = /home/jcuan/code/pyth ...

  4. 使用wfastcgi在IIS上部署Python Flask应用

    本文介绍了如何在Windows上部署Python Flask应用,相关环境如下: 操作系统:windows 7 Python:3.4 WFastCGI: 2.2 应用所用到的包版本如下: Flask= ...

  5. Python Flask 构建微电影视频网站

    前言 学完本教程,你将掌握: 1.学会使用整形.浮点型.路径型.字符串型正则表达式路由转化器 2.学会使用post与get请求.上传文件.cookie获取与相应.404处理 3.学会适应模板自动转义. ...

  6. IIS部署FLASK网站

    在 Windows 平台部署基于 Python 的网站是一件非常折腾的事情,Linux/Unix 平台下有很多选择,本文记录了 Flask 部署到 IIS 的主要步骤,希望对你有所帮助. 涉及工具和平 ...

  7. 使用Nginx+Uwsgi部署Python Flask项目

    第一次用Flask做Web(也是第一次用Python做Web),在部署的时候遇到了不少问题,现在将过程就下来,供在这方面也有疑惑的人参考.(PS:使用Apache+mod_wsgi部署模式的可以参考另 ...

  8. Python Flask搭建一个视频网站实战视频教程

    点击了解更多Python课程>>> Python Flask搭建一个视频网站实战视频教程 第1章 课程介绍 第2章 预备开发环境 第3章 项目分析.建立目录及模型规划 第4章 建立前 ...

  9. Python FLask 腾讯云服务器部署

    CentOs 7.0云服务器部署Python Flask 使用: Python 2.7 Flask nginx gunicorn easy_install python-dev yum install ...

随机推荐

  1. 安装和使用php的mcrypt扩展

    程序员们在编写代码程序时,除了要保证代码的高性能之外,还有一点是非常重要的,那就是程序的安全性保障.PHP除了自带的几种加密函数外,还有功能更全面的PHP加密扩展库和. 其中,Mcrypt扩展库可以实 ...

  2. iOS 使用markdown 实现编辑和预览文本

    注意要点: 1.在iOS 可以依赖UIWebview 来实现 2.丰富的UI样式依赖 html 的样式, js 调用插入markdown内容呈现出来 3.实现markdown编辑快捷键:参考githu ...

  3. Python学习示例源码

    函数和函数式编程 函数定义: 函数调用: 过程定义: 过程调用: 面向过程的编程方法: """ 面向对象-----类------class 面向过程-----过程---- ...

  4. Python3.x:python: extend (扩展) 与 append (追加) 的区别

    Python3.x:python: extend (扩展) 与 append (追加) 的区别 1,区别: append() 方法向列表的尾部添加一个新的元素.只接受一个参数: extend()方法只 ...

  5. ARTS Week 001

    Algorithm Leetcode 1. Two Sum Given an array of integers, return indices of the two numbers such tha ...

  6. [专业亲测]Ubuntu16.04安装Nvidia显卡驱动(cuda)--解决你的所有困惑【转】

    本文转载自: 因为要做毕设需要安装caffe2,配置cuda8.0,但是安装nvidia驱动真的是把我难倒了,看了很多篇博文都没有效果,现在我自己重新总结了下几种 安装方法(亲测有效),希望能帮到大家 ...

  7. Oh My Zsh 插件篇 - 实用工具

    Oh My Zsh 除了为我们提供快捷的命令行操作之外,还提供了强大丰富的插件机制,每个社区贡献者都可以贡献自己的插件,让整个生态体系更加丰富完善.今天给大家介绍了一下它的实用工具类插件. 前面我们分 ...

  8. this 的理解

    function foo(num){ console.log("foo:",+num); this.count++}foo.count =0for (var i=0; i<1 ...

  9. 爬虫框架Scrapy之CrawlSpiders

    CrawlSpiders 通过下面的命令可以快速创建 CrawlSpider模板 的代码: scrapy genspider -t crawl tencent tencent.com 上一个案例中,我 ...

  10. 【semantic segmentation】Pyramid Scene Parsing Network(转)

    论文地址:https://arxiv.org/pdf/1612.01105.pdf源码地址:https://github.com/hszhao/PSPNet 来自:Semantic Segmentat ...