三步在樹莓派上部署nginx+uWSGI+flask

轉自:https://www.jianshu.com/p/14123b6b74c0

最近在學習flask,想把應用部署在樹莓派上面,我的樹莓派是2代B+,使用的是Kali linux。
部署之前先來看一下內存

部署前內存的使用情況

現在只用了214.3M,還好。

我使用的是python3,所以所有軟件都得安裝python3版本的。
下面開始部署。

首先要安裝nginx,uWSGI,flask,uwsgi-plugin-python3

sudo apt-get install nginx uwsgi uwsgi-plugin-python3
sudo pip install flask

安裝完成後就可以開始部署了。

第一步,創建flask應用

重點是部署,所以我們只要寫一個最基本的flask應用就好了。

from flask import Flask
app = Flask(__name__)

@app.route(’/’)
def hello_world():
return ‘Hello World!’

if name == main:
app.debug = True
app.run()

注意,我們創建的flask實例名是app,這個需要記一下,一會讓要用這個。
寫完之後保存爲hello.py,這個名後面也需要用。
然後我們就來運行一下,看看能不能訪問。
執行

python3 hello.py

打開樹莓派的瀏覽器,訪問localhost:5000,看看能不能看到打印出來的'Hello World!',如果能看到,說明程序沒有問題。然後進入下一步。

第二步,配置nginx

nginx安裝完成後,還需要配置,才能訪問。
默認的配置文件在/etc/nginx/sites-available/default,修改它

sudo nano /etc/nginx/sites-available/default

找到server,修改成下面這個樣子

server {
        listen 80;
        server_name raspberry;
        location / {
                include uwsgi_params;
                uwsgi_pass  127.0.0.1:5000;
        }
}

修改完畢之後保存退出,然後啓動nginx服務

sudo /etc/init.d/nginx start

看到OK就表明啓動成功了。然後進入第三步。

第三步,配置uWSGI

我們需要爲我們的應用添加一個uWSGI配置文件,然後用它來啓動uWSGI服務。
在剛纔創建flask應用的目錄下,創建一個叫test_config.ini的文件,內容如下:

[uwsgi]
socket = 127.0.0.1:5000
processes = 4
threads = 2
plugins = python3
master = true
pythonpath = /home/Davidham3/python/MyBlog
#上面的pythonpath需要換成剛纔你自己創建的應用的目錄
module = hello
callable = app
memory-report = true

參數說明:
· socket:表示和Nginx通信的地址和端口,和Nginx配置裏的uwsgi_pass一致。
· processes:表示開啓多少個子進程處理請求。
· threads:每個進程的線程數。
· plugins:加載指定插件
· master:啓動主進程
· pythonpath:表示項目目錄
· module:加載項目啓動模塊,剛纔我們創建了hello.py,這裏就爲hello
· callable:flask項目的實例名稱,就是剛纔我們創建的實例名
· memory-report:內存使用報告,開啓後打印內存使用情況

創建完uWSGI配置文件之後,使用剛纔創建的test_config.ini配置文件啓動服務。

sudo uwsgi --ini /home/Davidham3/python/MyBlog/test_config.ini

啓動後,可以看到很多文字,只要不報錯就OK了,這時候我們訪問localhost即可看到剛纔部署的flask應用。即'Hello World!'。按Ctrl+C停止服務。
使用如下方法後臺運行服務。

sudo uwsgi -d /home/Davidham3/python/MyBlog/uwsgi.log --ini /home/Davidham3/python/MyBlog/test_config.ini

使用-d創建日誌文件,--ini導入配置文件,即可後臺運行應用。

訪問localhost

此時也可以通過局域網其他機器進行訪問,輸入樹莓派的IP地址即可看到該flask應用。

這時候我們看一下內存的使用情況:

部署後內存的使用情況

現在是384.9M,兩個服務一個應用一共使用了內存170M,這主要是因爲nginx是一款佔用內存少的輕量級web服務器。

需要注意的是,在flask的腳本上,一定要寫if __name__ == '__main__':這句,否則會報錯。

至此爲止,使用nginx+uWSGI在樹莓派上部署flask應用就完成了。

      </div>
    </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章