centos 下部署django nginx+uwsgi


為了建立一個工作站,也是麻煩了....

感謝該博主:

https://www.cnblogs.com/levelksk/p/7921066.html    

1.安裝centos 后首先安裝python,下載解壓安裝和以前一樣,但是注意 python3.7使用起來在 pycharm下建立django遇到bug,可能是我的pycharm版本不夠高的原因吧。

后來重新安裝python3.6,故障解除。

2.

(nginx+uwsgi+python3+django)  使用該方式,注意盡量開啟root來配置,不然會出現各種問題

在早期使用ubuntu遇到眾多問題,無奈放棄,轉到centos,ubuntu用起來也不夠穩定,亟待加強.

3.來源於該博主文章,是一個可靠的博文,沒有遇到其他異常狀況

1、安裝各類基礎模塊

yum gcc-c++

注:此命令我沒有運行成功

(為centos系統增加編譯功能)

yum install wget openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

注:此命令正常

(安裝這些模塊都是為了成功編譯安裝python3,防止出現各種異常)

yum install libxml*

注:此命令正常

(安裝這個模塊是為了讓uwsig支持使用“-x"選項,能通過xml文件啟動項目)

2、編譯安裝python3(我已經安裝好了python3.6所以跳過此步驟)

進入home路徑(本人喜歡把東西都下載到這里),執行以下命令:

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tgz

下載完成后,執行解壓命令:

tar -zxvf Python-3.6.3.tar.gz

進入解壓后的Python-3.6.3文件夾,依次執行以下命令

./configure --prefix=/usr/local/python3

(將python3安裝到/usr/local/python3/路徑下)

make -j2
make install -j2
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

注:此命令正常

(以上兩個ln命令是為了方便在終端中直接使用python3和pip3命令 )

3、給python3安裝django和uwsgi以及配置啟動項目的xml文件

pip3 install django
pip3 install uwsgi

注:此命令正常

為了在終端中使用uwsgi命令,執行以下命令

ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

將你的django項目放到你想放的路徑下,例如/home/www/,假設我們的Django項目名為"myproject",里面有一個應用叫"myapp"
在你的django項目下新建 myproject.xml,內容如下:

<uwsgi>
    <socket>127.0.0.1:8997</socket><!-- 內部端口,自定義 -->
        <chdir>/home/www/myproject</chdir><!-- 項目路徑 -->
            <module>myproject.wsgi</module>
                <processes>4</processes> <!-- 進程數 --> 
    <daemonize>uwsgi.log</daemonize><!-- 日志文件 -->
</uwsgi>

wq保存 

注:此命令正常,對於用不慣Vm的人來說,gedit是個好的選擇,注意打開文件要用 root不然提示沒有權限。其中有很多命令都需要root,如果狐仙莫名其妙的問題

請開啟root

4、安裝nginx和配置nginx.conf文件

進入home目錄,執行以下命令:

wget http://nginx.org/download/nginx-1.13.7.tar.gz

注:此命令正常

下載完成后,執行解壓命令:

tar -zxvf nginx-1.13.7.tar.gz

注:此命令正常

進入解壓后的nginx-1.13.7文件夾,依次執行以下命令:

注意要進入nginx-1.13.7文件夾執行以下命令
cd nginx-1.13.7
./configure
make&make install

注:此命令正常 ,注意要root權限

nginx一般默認安裝好的路徑為/usr/local/nginx
在/usr/local/nginx/conf/中打開nginx.conf,加入以下內容

cd /usr/local/nginx/conf/
server {
    listen 8996; #暴露給外部訪問的端口
    server_name localhost;
        charset utf-8;
    location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8997; #外部訪問8996就轉發到內部8997
    }
    location /static/ {
        alias /home/www/myproject/myapp/static/; #項目靜態路徑設置
    }
}

(以上內容請保證在默認內容的大括號內)

注:此命令正常,nginx.conf  文件下面就有這幾行你解注釋就好了

 有必要說明這種

nginx+uwsgi

工作原理:

  nginx負責建立一個本地的工作環境,就是本地服務器,類似於pycharm的 run調試django一樣,可以打開一個 http:127.0.0.1的本地服務頁面

並開啟一個可使用的端口。

  uwsgi 負責轉發,將外網發過來的請求轉發給 nginx,nginx就像處理內部訪問一樣來處理請求。(所以他們的端口明顯不一樣)

wq保存后進入/usr/local/nginx/sbin/目錄
執行

cd /usr/local/nginx/sbin/
./nginx -t

此命令需要root不然報錯

命令先檢查配置文件是否有錯,沒有錯就執行以下命令:

./nginx

終止

pkill -9 nginx  

終端沒有任何提示就證明nginx啟動成功,可以通過鏈接查看nginx是否啟動成功:
http://192.168.1.111 (請將該ip替換成你的服務器ip)

注:你可以輸入來避免輸入ip

localhost

5、訪問項目頁面

進入你的django項目路徑,執行以下命令:

uwsgi3 -x myproject.xml

注:執行該xml后django就算是啟動了,內部的nginx服務也將被啟動,uwsgi將能夠連接到nginx的服務了,此時網絡應該是通暢的了。

以上步驟都沒有出錯的話,打開你的瀏覽器,輸入以下鏈接,記得關閉系統防火牆或者開放8996端口
http://192.168.1.111:8996 (請將該ip替換成你的服務器ip)
網站訪問成功!

localhost:8996

注:你可以輸入來避免輸入ip,此時將能夠訪問Django的網頁了,enjoy yourself

 釋疑:localhost 在本地就是沒有特別的意義,一旦搖了服務器,我們就可以輸入服務器地址訪問了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM