# ubuntu16.04+nginx+gunicorn部署flask項目

ubuntu16.04+nginx+gunicorn部署flask項目

前期準備配置服務器上的環境:

1.我們部署項目需要使用到虛擬環境,因此下載一個虛擬環境包
sudo apt-get install python-dev python-pip python-virtualenv

如果不行使用這兩種方法試試

python2/3創建方法;

1.pip install python3-env 安裝虛擬環境包

2.python3 -m venv <虛擬環境文件名> 或者 python -m venv <虛擬環境名字>

3.進入該虛幻環境 並激活 激活指令activate

4.退出虛擬環境直接就是 deactivate

python2/3創建方法:

1.pip install virtualenv
2.virtualenv <虛擬環境名>
3.進入該虛幻環境 並激活 激活指令 進入bin文件內 source activate

(進入成功的話有個標誌(venv))
在這裏插入圖片描述

4.退出虛擬環境直接就是 deactivate

2.安裝nginx

sudo apt-get install nginx

3.進入虛擬環境安裝gunicorn

(venv) $ pip install gunicorn

安裝完之後就是上傳項目文件

1.使用xftp傳文件到服務器,項目就放到之前創建的虛擬環境目錄內。

進入虛擬環境,安裝第三方庫,使用清單的方式。

2.先生成我們所需要安裝的第三方庫

pip freeze >> requirements.txt

說明:>>這個符號意思是增加內容,這裏是將需要安裝的第三方庫安裝到requirements.txt中

還有一個符號> 是覆蓋的意思。

3.使用清單方式安裝庫

pip install -r requirements.txt

4.配置nginx

進入 /etc/nginx/sites-available

將default刪除,重新寫一個配置文件

這裏寫的是基本配置

注意“ ; ”不能省略

server{

​ listen 80; //你需要監聽的端口

​ server_name zhangsan.com ; //填寫域名或者這裏填你的服務器的公網ip

​ location /static{

​ alias /home/venv/flask-test/app/static ; //這裏配置靜態文件的地址

​ }

​ location /{

​ proxy_pass http://127.0.0.1:9000 //這裏http一定不能省略 還有自己執行這個項目運行的端口,隨便一個基本是8090 或者9000

​ proxy_set_header Host $host; //這裏就是默認的一樣就可以。

​ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

​ }

}

5.啓動gunicorn

進入虛擬環境啓動,還有進入到當前項目的啓動程序的目錄

(venv) $ gunicorn -w 4 -b 127.0.0.1:9000 run:application

That’s all! 它的安裝就這麼簡單。不過這裏得作一個解釋。就是最後的那個參數 run:application

表示啓動flask程序。 run是這個項目啓動程序的文件名,application是flask項目實例,即application=Flask(_name__)

6.結束

當然,就使用gunicorn啓動完程序之後就可以了,不過也可以使用supervisor進程管理工具,使得項目可以更好的管理。

還可以參考:https://www.cnblogs.com/ray-liang/p/4837850.html

7.注意

如果不能啓動,可能是你端口被佔用,或者防火牆開啓了,或者端口沒有打開。

nginx基本使用

進程查看 ps aux|grep nginx

1.基本命令:

nginx 啓動nginx服務

nginx -s reload 重啓nginx

nginx -s quit 優雅退出 (此時執行此命令之時,若是有人在訪問資源,要等到其訪問完之後,nginx就會停止)

nginx -s stop 強行停止服務

2.nginx配置文件在

/etc/nginx/

sites-available 配置文件,在這裏配置,然後鏈接文件到sites-enabled

sites-enabled 是sites-availablez中的文件執行的配置文件

3.基本的配置

進入 /etc/nginx/sites-available

將default刪除,重新寫一個配置文件

這裏寫的是基本配置

注意“ ; ”不能省略

server{

​ listen 80; //你需要監聽的端口

​ server_name zhangsan.com ; //填寫域名或者這裏填你的服務器的公網ip

​ location /static{

​ alias /home/venv/flask-test/app/static ; //這裏配置靜態文件的地址

}

​ location /{

​ proxy_pass http://127.0.0.1:9000 //這裏http一定不能省略 還有自己執行這個項目運行的端口,隨便一個基本是8090 或者9000

​ proxy_set_header Host $host; //這裏就是默認的一樣就可以。

​ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

4.日誌記錄

nginx服務器執行日誌在

/var/log/nginx中,

gunicorn說明

這是一個支持wsgi協議的一個服務器,他能能夠與各種wsgi web框架協作。而flask是一個基於wsgi協議的web框架,所以我們這裏使用了gunicorn。。 還有支持wsgi協議的服務器。比如uwsgi。不過不建議使用,比較複雜。

supervisor

一個進程管理工具。

supervisor命令行啓動

    supervisorctl -c /etc/supervisor/supervisord.conf.dpkg-new

一些命令

start <需要運行的進程>

stop 《需要停止的進程》

reload 重新加載

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