CentOS7.5+Python3.7.3+Nginx1.16.0+MySQL5.6+uWSGI部署上線Flask項目 --項目部署

1、Python3環境的安裝

請參考個人其它文章:Installing stable Python3.7.3 in CentOS7.5 --項目部署python

2、Nginx環境的安裝

請參考個人其它文章:Installing the stable nginx-1.16.0 in CentOS7.5(source installation) --項目部署mysql

3、MySQ環境的安裝

請參考個人其它文章:Installing and configuring MySql5.6 In CentOS7.5 --項目部署
安裝完成後,將開發環境中的數據庫文件導出:nginx

thanlon@thanlon-Ubuntu:~$ mysqldump -uroot -p blueflag>db.sql

上傳到服務器中,sql

thanlon@thanlon-Ubuntu:~$ scp db5.15.sql root@106.12.115.123:/root/db_file/

建立和use數據庫後,經過source指令導入到MySQL中,數據庫

source db.sql
4、上傳項目源碼到服務器中
  1. 在CentOS中的/root目錄下建立flask文件夾用來存放項目文件
[root@instance-mtfsf05r ~]# mkdir flask
  1. 上傳項目源碼到服務其中(個人開發環境是Ubuntu,因此我就經過scp命令上傳了)
thanlon@thanlon-Ubuntu:~/pythonWeb$ scp -r blueflag root@106.12.115.136:/root/flask
5、安裝Python虛擬化環境
  1. 經過pip3命令安裝virtualenv
[root@instance-mtfsf05r ~]# pip3 install virtualenv
  1. 在項目根目錄中建立虛擬環境文件目錄(文件名自定義,這裏是blueflagvenv
[root@instance-mtfsf05r ~]# cd flask/blueflag
[root@instance-mtfsf05r blueflag]# virtualenv blueflagvenv
  1. 激活虛擬化環境
[root@instance-mtfsf05r blueflag]# source blueflagvenv/bin/activate

激活後出現虛擬化環境文件目錄名子:(blueflagvenv) [root@instance-mtfsf05r blueflag]#,說明激活成功,當前正處於Python虛擬環境flask

6、安裝項目須要的第三方庫

根據項目的需求安裝(在虛擬環境中安裝),例如:個人這些庫segmentfault

(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install wtforms
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask_sqlalchemy
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install requests
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install pymysql
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install flask_script

還可使用:安全

thanlon@thanlon-Ubuntu:~$ pip3 freeze>blueflag.txt

導出依賴包,而後直接經過:服務器

(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install -r blueflag.txt

安裝這些依賴包。網絡

7、安裝和配置uWSGI
  1. 安裝
(blueflagvenv) [root@instance-mtfsf05r blueflag]# pip install uwsgi
  1. 在項目根目錄下建立一個配置文件uwsgiconf.ini,文件名能夠自定義
(blueflagvenv) [root@instance-mtfsf05r blueflag]# touch uwsgiconf.ini
  1. 配置uwsgiconf.ini文件

在uwsgiconf.ini文件中寫入下面代碼塊的內容:(記得把註釋所有刪掉)

[uwsgi]
socket = 127.0.0.1:8001#啓動程序時所使用的地址和端口

chdir = /root/flask/blueflag/#項目目錄

wsgi-file = manager.py#項目程序啓動文件

callable = app#程序內啓用的application變量名字

processes = 2#處理器的數量,個人是2個處理器

threads = 2 #線程數量

stats = 127.0.0.1:9191#獲取uwsgi統計信息的服務地址
~

這樣安裝和配置uWSGI就完成了

8、配置Nginx

配置Nginx做爲代理的目的是保證項目的安全和負載均衡。當存在網絡請求時,Nginx先進行處理,而後再將請求交給uWSGI處理。

  1. 打開Nginx配置文件nginx.conf
[root@instance-mtfsf05r ~]# vi /usr/local/nginx/conf/nginx.conf
  1. 修改nginx.conf中的內容以下:(http{}中花括號中的server{})
server {
        listen       80;
        server_name  106.12.123.123;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        access_log      /root/flask/blueflag/logs/access.log;#服務器接收的請求日誌
        error_log       /root/flask/blueflag/logs/error.log;#錯誤日誌

        locatior / {
            include uwsgi_params; #這裏是導入的uwsgi配置
            uwsgi_pass     127.0.0.1:8001;#須要和uwsgi的配置文件裏socket項的地址
            uwsgi_param UWSGI_PYHOME /root/flask/blueflag/blueflagvenv;#python的位置(虛擬環境下)
            uwsgi_param UWSGI_CHDIR  /root/flask/blueflag;#項目根目錄
            uwsgi_param UWSGI_SCRIPT manager:app;
        }
9、啓動Nginx與uWSGI
  1. 啓動Nginx
[root@instance-mtfsf05r ~]# nginx
  1. 到項目根目錄blueflag(這是個人目錄)下啓動uWSGI,注意要激活Python虛擬環境中,這裏在虛擬環境中安裝了uwsgi
[root@instance-mtfsf05r blueflag]# cd /root/flask/blueflag/
[root@instance-mtfsf05r blueflag]# source blueflagvenv/bin/activate
(blueflagvenv) [root@instance-mtfsf05r blueflag]# uwsgi uwsgiconf.ini
  1. 經過服務器IP地址訪問你的項目,正常訪問,則部署上線成功
    在這裏插入圖片描述

    參考文章:CentOS下用Nginx和uwsgi部署flask項目