Ubuntu服務器配合nginx反向代理 uwsgi 部署Django

首先我的操作系統是ubuntu-18.04-desktop-amd64,Django1.11,Python3.56,nginx和uwsgi是直接下載的最新版(2018-11-18下載的)。

一.連接遠程服務器

    一般購買的服務器都會默認可用xsheel等工具連接。
    在虛擬機上實驗或者服務器沒有開啓遠程連接權限的可參考-->[ \[ubuntu上實現遠程訪問和ftp文件上傳\]](http://www.manbanzhen.top/?p=84)[(安全要求高的話可以另找方法,因此方法開啓的是root權限)

二.安裝python環境

    安裝python3
    sudo apt-get install python3
    安裝pip3
    sudo apt-get install pip3
    

PS:可以在此步驟設置虛擬環境,我在服務器上試了幾次沒成功,就沒有配置虛擬環境,故略過。(配置虛擬環境和不配置基本區別不大(別噴))

三.把項目打包完成傳到服務器存放的文件夾

1.遠程傳輸到服務器上可以參考
2.遠程服務器或虛擬機開啓遠程文件傳輸方法: [ubuntu上實現遠程訪問和ftp文件上傳][2](同樣,安全要求高的話略過,一般購買的服務器都會配置好的)

四.安裝所需數據庫和所需要的庫

1.安裝數據庫(我用的mysql)
sudo apt-get update
sudo apt-get install mysql-server
2.安裝django(我用的版本是1.11)
sudo apt-get install django==1.11
3.導出環境所需要的所有庫的名稱
   切換到項目目錄
   1.cd /home/manbanzhen/myproject/
   導出項目所需的所有庫
   2.pip3 freeze > requirements.txt(這時在我們項目文件夾中會出現一個 requirements.txt 的文件)
   安裝需要的庫
   3.sudo pip3 install -r requirements.txt
(python3 manage.py runserver  < --> 測試是否所需的環境都安裝成功)

五.創建靜態文件文件夾並收集靜態文件

在項目文件夾下創建文件夾:mkdir static_file 在setting.py文件中 添加 STATIC_ROOT =
'static_file文件夾的絕對路徑' 然後執行: python manage.py collectstatic    (收集靜態文件)

六.安裝uwsgi

sudo pip3 install uwsgi

安裝成功之後,我們進入項目根目錄/home/mabanzhen/projects新建一個 uwsgi.ini 文件,在裏面輸入代碼:
enter image description here 要留意裏面的項目路徑和指定uwsgi文件,看清楚你的文件路徑填寫。

七.創建數據庫及同步數據庫

1.進入數據庫,創建相應名稱的數據庫
2.在setting.py中修改對應的數據庫連接信息
3.同步和遷移數據庫
  python3 manage.py makemigrations
  python3 manage.py migrate

八.下載nginx並配置

sudo apt-get install nginx 
cd /etc/nginx  
 修改 nginx.conf

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-TktpLxAE-1586312340785)(http://www.manbanzhen.top/wp-content/uploads/2018/11/1.png)]

注意項目路徑和靜態資源的文件路徑。
server_name:這裏填你的域名或IP。
(上圖中是我截圖別人的)
進入/usr/local/nginx/sbin/目錄
執行下面語句啓動
nginx ./nginx

九.啓動uwsgi

切換進入到項目的根目錄
cd /home/manbanzhen/myproject/
啓動
uwsgi --ini uwsgi.ini


現在就可以在瀏覽器中輸入你的域名或IP可以訪問啦!!!


uwsgi相關命令:

uwsgi --ini uwsgi.ini 啓動項目 
uwsgi --stop uwsgi.pid 停止項目  
uwsgi--reload uwsgi.pid 重啓項目   

nginx相關命令:

cd /usr/local/nginx/sbin/ ----- ./nginx ----- 啓動nginx 
  cd /usr/local/nginx/sbin/ ----- ./nginx -s reload ----- 重啓nginx
  ps--ef|grep nginx -----               快速停止
  kill -TERM 2132 或 kill -INT 2132 ----- 殺死進程   
  pkill -9 nginx ----- 強制停止   

以上是我在Ubuntu上部署Django項目時的一些筆記;可能會存在一些錯誤,如果發現,請底下評論聯繫我,我將積極進行修改。 參考資料鏈接:
https://www.django.cn/article/show-22.html
https://www.cnblogs.com/codingcloud/p/5095066.html
https://blog.csdn.net/fengzq15/article/details/78633827
https://blog.csdn.net/nancy50/article/details/81080693

還有一些參考未放上來,感謝所有。

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