nginx+uwsgi+flask环境搭建
想自己搭建一个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,如果想真正的搭建完整的环境,请参看uwsgi和nginx的文档
首先创建工程的目录,在下/home/zhx/下,命名为my_flask,
在my_flask下创建应用目录,命名为app,在app文件夹下创建__init__.py文件,用来标示这是一个python-package
__init__.py中内容如下:
#!/usr/local/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了。
来自:http://my.oschina.net/chinesezhx/blog/489479