flask+gunicorn+nginx

作者:Python小白

链接:centos下通过gunicorn和nginx部署Flask项目 - Python小白的文章 - 知乎专栏

来源:知乎

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

之前用Flask写了个解析Tumblr博客(为Tumblr默哀)的网站,然后直接放在DigitalOcean上运行:

python run.py结果感觉怎么那么不稳定!!!然后就以为是服务器不行

后来才知道原来Flask的app.run()只是用来本地调试用的,如果真正放到服务器上运行的话,是完全不行的!需要配合gunicorn/uWsgi和Nginx才行。

然后就在网上找到这篇文章《python web 部署:nginx + gunicorn + supervisor + flask 部署笔记》。文章看起来不错,但是尼玛写文章能不能用点心!!你根本就没有说完整个部署过程好吗!!Nginx的配置都没有说完好吗!!!对于没有接触过Nginx的小白来说,这是致命的好吗!!!

结果就搭配着gunicorn把Flask半部署,直接运行

gunicorn -w4 -b 0.0.0.0:80 run:app

把网站运行起来了!

ok,以上属于吐槽部分,接下来讲整个的部署过程!

首先说明搭建环境:DigitalOcean服务器

CentOS 64位系统

通过链接https://m.do.co/c/dbd97068223d注册,可以获得10刀!可以相当于免费用两个月哦!

1首先安装Flask、gunicorn、Nginx

DO的CentOS是没有安装pip和setuptools的,所以如果需要安装Python库的话,需要自己先安装setuptools。我比较懒,所以只安装了setuptools,用easy_install来安装Python库。

安装setuptools过程:

(1)下载setuptools包

# wget http://pypi.python.org/packages/source/s/setuptools/setuptools-2.0.tar.gz

(2)解压setuptools包

# tar zxvf setuptools-2.0.tar.gz

# cd setuptools-2.0

(3)编译setuptools

# python setup.py build

(4)开始执行setuptools安装

# python setup.py install

咳咳!!DO的CentOS好像连wget也没有安装,所以需要提前安装wget:

yum install wget

安装好setuptools后,就可以通过easy_install 安装各种Python库了:

easy_install flask

easy_install gunicorn

Flask和gunicorn安装好之后就安装Nginx,CentOS不能直接安装Nginx,还需要添加rpm(其实我根本不知道这是什么鬼,可能就是一个源吧)

1、CentOS 6,先执行:

[root@server ~]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm

2,安装nignx

[root@server ~]# yum install nginx

嗯,Nginx安装好了!2、添加Flask项目

这里就创建一个最简单的Flask项目,项目目录是/home/flask,在该目录下创建一个run.py的Python文件。

#run.py

from flask import Flask

app = Flask(__name__)

@app.route('/')

def index():

return '

Hello World!

'

if __name__ == '__main__':

app.run()

然后运行gunicorn

[root@server ~]# gunicorn -w 4 -b 0.0.0.0:5000 run:app

[2016-05-28 12:35:26 +0000] [1541] [INFO] Starting gunicorn 19.6.0

[2016-05-28 12:35:26 +0000] [1541] [INFO] Listening at: http://0.0.0.0:5000 (1541)

[2016-05-28 12:35:26 +0000] [1541] [INFO] Using worker: sync

[2016-05-28 12:35:26 +0000] [1546] [INFO] Booting worker with pid: 1546

[2016-05-28 12:35:26 +0000] [1551] [INFO] Booting worker with pid: 1551

[2016-05-28 12:35:26 +0000] [1552] [INFO] Booting worker with pid: 1552

[2016-05-28 12:35:26 +0000] [1553] [INFO] Booting worker with pid: 1553

这个时候打开浏览器,输入http://你的服务器ip:5000就可以看到运行结果

然后配置Nginx,刚才安装了Nginx之后,我们打开/etc/nginx/conf.d/default.conf,然后修改默认的default.conf为:

server {

listen 80;

server_name localhost;

location / {

proxy_pass http://127.0.0.1:5000;

proxy_redirect off;

proxy_set_header Host $host:80;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

其中server_name就是你的域名,这里用localhost代表通过ip访问

配置好default.conf之后就启动Nginx吧!

[root@server ~]# service nginx start

Starting nginx: [ OK ]

[root@server ~]# nginx -s reload

ok!到这一步,整个部署过程就搞定了!打开浏览器输入http://你的服务器ip 看是否运行?

整个部署过程可以总结为:

安装Flask、gunicorn、Nginx -->

添加Flask项目 -->

运行Gunicorn -->

修改Nginx配置文件 -->

运行Nginx

python官网网址是什么意思_大家都是怎么部署python网站的?相关推荐

  1. python官网地址-python官网网址

    广告关闭 腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元! 通过 pip 安装(推荐)您可以通过执行以下命令,将腾讯云 api python ...

  2. python官网网址是什么意思_python官网是什么

    python官网就是python的官方网站,网址为www.python.org. python官网是我看过的比较简洁的官网之一.进入首页映入眼帘的首先是几个python代码的示例,用以表示python ...

  3. python官网网址是什么,python官方下载网址

    如何找到Python的官方网站? 百度搜索python,有官方标志的就是.如何找到Python的官方网站?可以阅读相关书籍,不过,这类型的问题更直接的是直接搜索. 中英文搜索都可以,百度搜索可以使用关 ...

  4. 在python官网如何下载手机版_如何下载各种版本Python?

    1.目的 本文目的在于,对于不熟悉Python的人,教你: 1. 从哪里找到可以下载到各种版本的,包括Python 2.x和Python 3.x的最新版本的Python. 2.以及解释一下,如何选择合 ...

  5. python官网下载步骤手机-一招解决:各种版本的Python下载安装教程

    Python 2.7.14下载 三.如果你想要寻找各种Python版本的下载,可以去https://www.python.org/downloads/release/进行查看(方法:复制本条链接到百度 ...

  6. python官网无法访问移动网络_关于 win10 创建WiFi热点 问题(无法启动承载网络 , 我们无法设置移动热点,因为你的电脑未建立以太网,wifi或手机网络数据连接 )...

    --------2020.2.27 补充------------------------------------------------------------------------------- ...

  7. python官网 中文版 新闻-他说,懂中文就能学会Python,但需要这个工具

    懂中文你就能学会python,但你需要一些靠谱的工具. python作为一门十分容易上手的编程语言,连小学生都在学习,所以,不管你是从事什么工作,都可以学会这门编程语言. 那么作为初学者,如何才能有效 ...

  8. 怎么在python官网下载python,官网python怎么下载安装

    python怎么安装 在Python官网下载Python安装包,双击打开Python软件.勾选add Python 3.8 to PATH,点击install Now. 安装完成后,点击Close.打 ...

  9. python官网下载究竟下载哪个?

    python官网有几个下载文件,有什么区别? Python 3.6.0a1 - 2016-05-17 Download Windows x86 web-based installer Download ...

最新文章

  1. window7系统中64位安装matalbR2009b后出现乱码的解决方案
  2. 皮纹生物识别多元智力测量的科学原理
  3. hdu1156(简单线段树 模板题)
  4. python科学计算笔记(十一)pandas中date_range生成指定日期
  5. 怎么安装redhat linux操作系统,红帽RedHat Linux5系统安装指南
  6. 字符与编码(编码转换)
  7. git 合并其他分支代码到自己的分支
  8. javascript案例---简单的视觉效应
  9. VUE后台管理中使用富文本编辑器导入word 文档进行编辑
  10. 控制物体沿椭圆轨迹运动
  11. GUI图形用户接口编写QQ登录界面
  12. 风变python怎么样_风变编程python到底怎么样?可以自学吗?
  13. 硬件工程师的真实前途我说出来可能你们不信
  14. 小米路由器登陆以及切换wan账户脚本
  15. “磁碟机”病毒肆虐 数万电脑中招
  16. android实现刷卡功能,Android 实现银联刷卡机消费后手动签名的功能(示例代码)
  17. liferay6.2.2GA2中CKEditor在IE11与SAFARI中BUG解决方案
  18. Nature综述:人类微生物培养及培养组学culturomics
  19. e575 viminfo 错误.
  20. bash shell 数组元素遍历操作 foreach

热门文章

  1. sql字符串拼接_Mybatis的SqlSession执行sql过程
  2. 化浆池是什么东西_一种双工位浆化池的制作方法
  3. docker java镜像_Springboot整合MongoDB的Docker开发,其它应用也类似
  4. css 块元素、内联元素、内联块元素
  5. PWN-PRACTICE-CTFSHOW-4
  6. REVERSE-COMPETITION-0xGame2021
  7. CCNP-第五篇-OSPF高级版(二)
  8. 【牛客 - 370A】签到题(线段树扫描线 或 STLset)(求线段并)
  9. 【POJ - 3125 】Printer Queue(模拟,队列+优先队列,STL)
  10. CURLE_WRITE_ERROR