文档章节

nginx+uwsgi+flask环境搭建

L很失败L
 L很失败L
发布于 2015/08/08 13:48
字数 629
阅读 1757
收藏 15

想自己搭建一个Blog,功能不是很复杂,所以选用了python的flask框架,在参照网上的资料搭出Hello World之后将知识汇总一下,以便以后查看。

系统:Ubuntu 14.04

首先安装flask,nginx,pip(方便安装 uwsgi),python-dev(uwsgi需要python头文件进行编译)

sudo apt-get install python-flask nginx python-pip python-dev
sudo pip install uwsgi

#uwsgi的安装注意依赖,可以参见uwsgi安装
#nginx的安装比较简单,安装后可以使用 nginx -v查看是否安装成功

下面开始创建web应用,由于只是尝试搭建,所以这里只是弄了一个简单的HelloWorld,如果想真正的搭建完整的环境,请参看uwsginginx的文档

首先创建工程的目录,在下/home/zhx/下,命名为my_flask,

在my_flask下创建应用目录,命名为app,在app文件夹下创建__init__.py文件,用来标示这是一个python-package

__init__.py中内容如下:

#!/usr/bin/env python
#-*-coding=utf-8-*-

from flask import Flask

App = Flask(__name__)

@App.route("/")
def index():
    return "Hello World"

#之后想丰富view函数可以参见flask的文档

在my_flask目录下创建config.xml文件,内容如下:

 <uwsgi>
     <pythonpath>/home/zhx/my_flask/</pythonpath> <!--工程的根目录 也可以理解为应用的父目录-->
     <module>app</module><!--应用所在目录的名称-->
     <callable>App</callable><!--应用中的具体调用实例,这里是App-->
     <socket>/tmp/uwsgi.sock</socket><!--用来和nginx交互的缓存文件,也可以使用端口,例如127.0.0.1:9090-->
     <master/>
     <processes>1</processes> <!--应用运行的进程数-->
     <memory-report/>
</uwsgi>

#具体配置的讲解可以参见uwsgi的配置

#也可以使用man查看,

接下来配置nginx,在/etc/nginx/sites-available/目录下创建site,内容如下:

server{
    listen 80;
    server_name 127.0.0.1;
    location / {
               include uwsgi_params;
               uwsgi_pass unix:/tmp/uwsgi.sock; #注意要和上面的缓存文件用一个名字
     }
}

#将/etc/nginx/sites-available/下的default文件备份一下,

mv  /etc/nginx/sites-available/default  /etc/nginx/sites-available/default.back

配置工作已经完成,现在可以启动试一下。目录切到工程目录下,即/home/zhx/my_flask/下

sudo uwsgi -x config.xml

然后会提示一大堆,注意看看有没有unable的字眼,如果没有就是启动成功了(配置好应用和工程的目录就可以成功启动)

这时在打开另一个终端,

sudo chmod 777 /tmp/uwsgi.sock #为了交互,需要设置权限

然后启动nginx就可以了

sudo /etc/init.d/nginx start

接着在浏览器访问127.0.0.1就可以看到helloworld了。

© 著作权归作者所有

共有 人打赏支持
L很失败L
粉丝 2
博文 14
码字总数 7388
作品 0
合肥
程序员
私信 提问
加载中

评论(2)

hotsmile
hotsmile
不错,学习了!!!
天音下雨
学习了,
Linux搭建Python web环境(nginx + flask + uwsgi)

去年的时候,就曾使用Nginx+Flask+uwsgi搭建过python的web环境。但在最近搭建的时候,又去网上找了一遍教程,所以打算写一篇笔记做下记录。 在搭建之前,有必要了解下发送一个请求的整个流程...

liuchungui
05/14
0
0
FLASK上传时有中文文件名的解决方案

场景是在nginx+uwsgi+flask时上传文件名为中文时nginx报502错,设置各各地方为utf8后无果,最后妥协了.解决方案一:拼接+安全检查 解决方案2:转成拼音pip install pypinyin...

雨花
2016/05/18
74
0
nginx+uwsgi+flask配置记录

nginx部分: nginx使用nginx官方yum源 详情:http://nginx.org/en/download.html nginx的配置文件: server { access_log /var/log/nginx/iday.me.access.log main; include uwsgi_params; ......

Risol
2012/08/03
0
4
为什么用Docker,Docker究竟有什么用呢

近年来,Docker越来越火爆,一大堆新概念,轻量级虚拟机,集装箱等概念,眼光缭乱。 慢慢也尝试用vagrant+docker搭建开发环境 和 服务器也用docker搭建测试环境,再逐步正式环境也用上docke...

小和
2016/11/03
73
2
【转帖】测试环境的搭建和维护

只要做过一次测试,就一定知道测试环境,但测试环境是如何搭建和维护的呢?就不一定所有人都明白了。 测试环境的搭建,每个公司都有不一样的流程和方法。一种是运维或者开发负责搭建和维护,...

12332111ss
2016/04/28
152
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
49分钟前
1
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
54分钟前
2
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
1
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0
Mybatis 学习笔记四 MyBatis-Plus插件

Mybatis 学习笔记四 MyBatis-Plus插件 maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <ve......

晨猫
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部