Python-在CentOS7上使用nginx+uwsgi部署Flask框架開發的Web項目

第一步:準備CentOS7服務器

    此次部署我採用的是部署到本機的虛擬機環境中,所以先在VM上安裝CentOS7。爲了避免每次啓動虛擬機服務器IP地址就發生改變,所以先配置靜態IP,首先在VM workstation的菜單欄上找到虛擬網卡配置菜單,然後將adapter8的dhcp去掉,然後查看gateway(中文名網關)。在centos中主要涉及一個文件的配置,在/etc/sysconfig/network_config/(網卡編號,類似cfg_eth0的文件),然後編輯5個地方:

    1.BOOTPROTO=static 靜態IP

    2.ONBOOT=yes 隨計算機啓動

    3.NETMASK=255.255.255.0 子網掩碼

    4.GATEWAY=192.168.3.2 網關,和之前在VM中查看的gateway相同

    4.IPADDR=192.168.3.7 需要和網關在同一個網段內

    5.DNS1=192.168.3.2 DNS和網關相同

最後輸入命令service restart network重啓網絡。


第二步:安裝Python

    因爲CentOS7自帶了python2.7.5,所以這裏我就不再重新安裝Python,如果需要安裝python可以找其他資料,安裝其他版本的python時要使用make && make altinstall避免覆蓋之前版本的python導致系統中其他使用到默認版本python的程序無法運行。然後再安裝pip,我採用源碼安裝,首先去pip官網下載pip的壓縮包,然後解壓後,進入解壓後的目錄,輸入python setup.py install來安裝pip,如果提示缺少setuptools模塊,則先安裝setuptools模塊,可以使用yum安裝,執行yum install setuptools安裝,也可以使用其他安裝方式,安裝好setuptools後再安裝pip,pip安裝好後,進入項目文件夾,因爲我的項目在之前已經通過pip freeze >requirements.txt生成了需求文件,所以當遷移到其他環境時可以直接使用pip install -r requirements.txt來安裝項目需要的模塊。到此python的環境就安裝完成了,可以在python下啓動項目,看python環境是否配置成功。

    如果服務器中可能會存在多個不同python環境的項目,可以使用virtualenv創建獨立的python環境,可以通過pip安裝,安裝好後可以在項目文件夾下執行virtualenv venv創建虛擬環境,可以加上-no-site-packages參數不拷貝真實python環境中的site-packages到新的虛擬環境中以創建一個乾淨的Python環境。


第三步:安裝nginx和uwsgi

    先去nginx官網下載源碼,然後執行./configure && make && make install來安裝,nginx會被自動添加的/usr/bin/nginx執行環境下,可以直接執行nginx命令,通過nginx -c conf/nginx.conf(nginx的配置文件)來啓動nginx,啓動成功後可以通過訪問127.0.0.1來驗證nginx是否啓動成功,nginx的默認端口是80,可以通過nginx安裝目錄下的conf目錄下nginx.conf來配置。

    然後再安裝uwsgi,同樣採用源碼的方式安裝,安裝好後需要通過配置nginx來把所有請求傳給uwsgi處理。

    配置nginx的很簡單,編輯nginx.conf文件,找到server節點下的localtion,localtion / {

include uwsgi_params;

uwsgi_pass 127.0.0.1:3031;

root html;

index index.html index.htm

}

    然後通過ps -ef | grep nginx找到nginx的線程master線程編號,然後通過kill -HUP nginx線程編號重啓nginx,這個時候再訪問127.0.0.1就會出錯。

    接下來配置uwsgi,在項目文件夾下創建app_config.ini配置文件,文件名可以自定義,內容爲:

[uwsgi]

socket=127.0.0.1:8099

chdir=/var/www/my-website/ #項目路徑

wsgi-file=manage.py #項目的啓動的主文件,也就是app = Flask(__name__)的創建文件,這裏需要靈活一點

callable=app #這個就是app = Flask(__name__)中的app對象名稱

processes=4 #配置啓動多少個進程來處理請求

    配置好後通過uwsgi app_config.ini來啓動uwsgi,這裏的app_config.ini需要絕對或相對路徑

    配置好後再訪問127.0.0.1就能夠訪問項目中路由地址"/"的路由函數。


    到此python項目就部署成功,有什麼問題後面再補充,本文是完全盲寫,有些命令或配置名稱可以輸入有錯,如果出錯可以自行查閱。


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