nginx+uwsgi+flask環境搭建

jopen 9年前發布 | 18K 次閱讀 Web服務器 Nginx

想自己搭建一個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/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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!