Centos7系統中下部署項目Python3+Django+nginx+uwsgi


Centos7部署nginx環境

 安裝依賴包

  命令:yum install gcc-c++

  yum install -y pcre pcre-devel
  yum install -y zlib zlib-devel
  yum install -y openssl openssl-devel

  • yum下載nginx並安裝

    命令:yum install -y nginx nginx-devel

  • 啟動nginx服務,服務默認端口是80

    命令:systemctl start nginx

  • 測試是否成功

    訪問本機的80接口

    命令:curl:127.0.0.1:80

    返回nginx主頁的html代碼說明安裝成功

 

Centos7部署uwsgi環境,並使用uwsgi運行django項目

  • 創建django項目

    命令:django-admin startproject mysite  會在當前目錄下創建mysite目錄

    進入mysite目錄,創建項目。

    命令: (python3的在系統中的環境變量名)   python3 manage.py startapp CompanyTemplate  會在mysite目錄下創建CompanyTemplate項目

    

 

  • 運行項目檢查項目是否能夠正常運行

    在manage.py 文件夾下使用執行運行操作

    命令:python3 manage.py runserver  :8090

    在使用端口前可以先查一下端口是否被占用

    lsof -i :8090

  • 使用pip3下載uwsgi

    (pip3 pip3在系統中的環境變量) 命令:pip3 install uwsgi

  • 添加環境變量

    命令:ln -s  /usr/local/python3/bin/uwsgi /usr/bin/uwsgi3

  • 使用uwsgi運行django項目

    (uwsgi3 uwsgi在系統中的環境變量)

     命令:uwsgi3 --http :8091  --chdir  /root/www/mysite  --module mysite.wsgi

     /root/www/mysite      --mysite目錄的地址

    mysite.wsgi              --mysite指的是 /root/www/mysite/mysite  文件夾,wsgi指的是該文件夾下的wsgi.py文件

  •  使用瀏覽器打開8091地址查看項目是否可以正常訪問

 

 

使用nginx代理訪問uwsgi

    Nginx是一個Http和反向代理服務器 
    什么是反向代理服務器呢?

  • 正向的就是由瀏覽器主動的想代理服務器發出請求,經代理服務器做出處理后再轉給目標服務器
  • 反向的就是不管瀏覽器同不同意,請求都會經過代理服務器處理再發給目標服務器

  這其中的區別就是必須經過Nginx反向代理服務器,這就有了使用Nginx的幾個好處:

    • 安全:不管什么請求都要經過代理服務器,這樣就避免了外部程序直接攻擊web服務器
    • 負載均衡:根據請求情況和服務器負載情況,將請求分配給不同的web服務器,保證服務器性能
    • 提高web服務器的IO性能:這個我也沒看懂,總結來說就是請求從客戶端傳到web服務器是需要時間的,傳遞多長時間就會讓這個進程阻塞多長時間,而通過反向代理,就可以在反向代理這完整接受請求,然后再傳給web服務器,從而保證服務器性能,而且有的一些簡單的事情(比如靜態文件)可以直接由反向代理處理,不經過web服務器
  • 創建uwsgi配置文件

    創建文件 test.ini 文件

    編寫文件內容配置參數有很多這里只簡單設置一下

    -----------------------------------------------------------------------------------------------

    #uwsgi.ini file
    [uwsgi]

    chdir=/root/www/mysite   #項目位置
    module=mysite.wsgi  #wsgi.py文件所在位置
    socket=127.0.0.1:8091  #限制只能通過本地訪問8091端口來訪問項目

    ----------------------------------------------------------------------------------------------------

    重啟uwsgi服務

    systemctl restart uwsgi 

  • 修改nginx的配置文件

    nginx配置文件默認路徑為/etc/nginx/nginx.conf

    修改配置信息

    命令  vim /etc/nginx/nginx.conf

    ------------------------------------------------------------------------------------------------------

    

 

     

 

     

 

    -------------------------------------------------------------------------------------------------------

    重啟nginx

    命令:systemctl restart nginx 

 

 

使用nginx代理獲取靜態文件

當訪問網站時靜態文件獲取不到頁面樣式報錯,比如: Django中使用admin后台管理框架

  • 修改Django項目settings.py配置文件

    設置靜態文件提取路徑

    

    /root/www/mysite/  為項目在服務器上部署的絕對路徑

  • 將Django項目中的靜態文件分離出來

     在manage.py文件所在路徑下執行分離

    python3 manage.py collectstatic

  • 修改Nginx服務配置文件,設置靜態文件獲取地址

    命令:vim /etc/nginx/nginx.conf

    

 

  • 重啟nginx服務

    systemctl restart nginx 

 


免責聲明!

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



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