nginx+uwsgi+flask环境搭建

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

系统:Ubuntu 14.04python

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

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

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

下面开始建立web应用,因为只是尝试搭建,因此这里只是弄了一个简单的HelloWorld,若是想真正的搭建完整的环境,请参看uwsginginx的文档shell

首先建立工程的目录,在下/home/zhx/下,命名为my_flask,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的文档
app

在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了。

相关文章
相关标签/搜索