樹莓派部署Flask+uWSGI+Nginx過程

來源:互聯網
上載者:User

標籤:

轉載來自
http://blackgu.blogbus.com/logs/171363164.html
略作修改

 

1)安裝Flask,uwsgi,nginx

Flask:sudo apt-get install python-flask

uwsgi:sudo apt-get install uwsgi uwsgi-plugin-python

nginx:sudo apt-get install nginx

 

2)建立Flask工程

這裡就用最簡單的HelloWorld,建立一個工程目錄:myapp,裡麵包含以下檔案:

檔案名稱:myapp.py

代碼:

from flask import Flask

app = Flask(__name__)

 

@app.route(‘/‘)

def hello():

     return ‘Hello World‘

 

if __name__ == ‘__main__‘:

       app.run()

 

3)配置uwsgi

在剛才建立的myapp目錄下建立一個uwsgi的xml設定檔myapp_config.xml:

<uwsgi>

     <pythonpath>[你的工程的根目錄]</pythonpath>

     <module>[模組名,這裡用myapp]</module>

     <callable>[因為app是啟動整個服務的入口,所以是app]</callable>

     <socket>/tmp/uwsgi.sock</socket>       #註:這裡的sock檔案不是某個現成的檔案,也不需要事先建立,運行時會自動建立,檔案名稱也是自己定的,路徑也是可以自己定的

     <master/>

     <processes>4</processes>                #註:跑幾個線程,這裡用4個線程

     <memory-report/>

</uwsgi>

範例:

<uwsgi>

     <pythonpath>/root/workspace_aptana/mytest/src/test/uwsgi</pythonpath>

     <module>myapp</module>

     <callable>app</callable>

     <socket>/tmp/uwsgi.sock</socket>

     <master/>

     <processes>4</processes>

     <memory-report/>

</uwsgi>

 

3)配置nginx

在/etc/nginx/sites-available/目錄下,建立一個網站檔案設定檔site:

server {

        listen 80;
        server_name www.myapp.com;

        location / {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/uwsgi.sock;   #註:這裡的sock檔案和uwsgi的sock檔案配的是同一個檔案,因為nginx和uwsgi需要通過這個socket進行互動
        }
}

 

或者,乾脆直接在defaut.conf裡面修改如下內容:

server {
        listen 8081;
        server_name localhost;

        location / {
                include uwsgi_params;
                uwsgi_pass unix:/tmp/uwsgi.sock;  
        }
}

 

然後用ln命令建立一個link到/etc/nginx/sites-enable/裡,link的名字也叫site,刪除sites-enable目錄下的default的link:

sudo    ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled/      (注意:這個是LN的小寫命令)

sudo rm /etc/nginx/sites-enabled/default

4)開始部署

1.啟動uwsgi,命令是sudo uwsgi -x myapp_config.xml,會打出很多的字,如果沒有載入工程成功可以從打出的資訊中看出,然後不要關閉該Terminal,

 

2.新開啟一個Terminal,在裡面啟動nginx:sudo /etc/init.d/nginx start,然後在瀏覽器裡訪問localhost(看配置的nginx裡的server監聽的連接埠,如上面的8),

 

3這時如果出現502頁面,可以看下日誌,我的日誌是在/var/log/nginx/error.log,如果裡面顯示是sock檔案因為許可權問題無法訪問,那隻要利用chmod命令給sock檔案賦上許可權:chmod 777 /tmp/uwsgi.sock,然後uwsgi和nginx再重啟一下,現在訪問localhost就可以看到“Hello World!”,OK!

樹莓派部署Flask+uWSGI+Nginx過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.