1. 程式人生 > >ubuntu 16.04部署python項目(Nginx+uwsgi+django)

ubuntu 16.04部署python項目(Nginx+uwsgi+django)

也有 src cnblogs 就是 主機 serve .cn ket essential

嘗試在linux上部署項目,先從最熟悉的python項目開始吧。

1、安裝Nginx

命令:sudo apt-get install nginx

技術分享圖片

2、安裝uwsgi,從pip倉庫安裝

命令:pip3 install uwsgi

技術分享圖片

3、把django項目移到服務器

通過這次操作才知道往linux上拖文件不能拖文件。因此需要打包一下才能移動文件。我這個雲服務器默認支持的xxx.tar.gz格式的文件,但是在windows上壓縮的時候只能壓縮成zip的,所以這裏有兩個辦法

1)在windows上安裝一個好壓的軟件,然後把文件壓縮成xxx.tar.gz格式,然後在linux上就可以直接tar -zxvf xx.tar.gz就可以了

2)在雲服務器上安裝zip命令,sudo apt-get install zip:

技術分享圖片

然後用zip命令解壓我們在windows下壓縮好的包

unzip xxx.zip 解壓文件

unzip -v xxx.zip 查看文件內容,但不解壓

unzip file.zip -d/目錄名 把file解壓到制定目錄

zip -r xxxx.zip yyy 把yyy以及yyy下面的所有文件都壓縮成xxxx.zip文件

4、配置Nginx與uwsgi

在與manager同級目錄下創建uwsgi.ini 文件,文件內容如下:

技術分享圖片

socket與http要註意,如果是要用Nginx運行django的話,就用socket,如果用uwsgi運行django的話,這裏就要換成http。

Nginx配置如下,在nginx.conf中的http加入server,如下

技術分享圖片

問題1:安裝pip

我用的是騰訊雲服務器,系統是自帶python的,但是pip需要自己安裝,安裝的過程也有點小曲折,故記錄一下。

命令:sudo apt-get python3-pip 安裝pip3

sudo apt-get python2-pip 安裝pip2

安裝的時候按照下面的方法,但是都是安裝的python2的,python3的沒有安裝成功,因為我項目用的是python3,所以用上面的方法能安裝成功也就不糾結這個了。

Install Easy Install

$ sudo apt-get install python-setuptools python-dev build-essential

Install pip

$ sudo easy_install pip

問題2、配置nginx

配置nginx的時候想配置自己的域名玩玩,剛開始不知道,以為只要在server_name配上自己的域名就可以,結果肯定是一直失敗,請求都到不了nginx。

在網上找了好多資料加上運維同學的講解才明白,要使用自己配置的域名,需要在服務器(也就是linux主機)上的hosts加入自己配置的域名並映射ip

技術分享圖片

,然後還要在客戶機(就是我們訪問服務器的機器)的hosts文件中加上域名與ip的映射,我的是windows,默認都是在c盤中。

ubuntu 16.04部署python項目(Nginx+uwsgi+django)