Django+Nginx項目部署上線


利用nginx +uwsgi完成django項目上線,系統環境采用ubantu系統, python3,django==1.1

 

1. 靜態文件

當Django運行在生產模式時,將不再提供靜態文件的支持,需要將靜態文件交給靜態文件服務器,Django提供了收集靜態文件的方法。先在配置文件中配置收集之后存放的目錄.

在settings文件中添加靜態文件目錄:

  TATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'front_end_pc/static')

然后執行收集命令

   python manage.py collectstatic

安裝nginx服務器

 sudo apt install nginx 

打開Nginx的配置文件

 sudo vim /etc/nginx/sites-available/default 

在server部分中配置

 server { listen 80; server_name www.aaaa.com; location / { root /home/python/Desktop/front_end_pc; index index.html index.htm; } }

重啟Nginx服務器

 sudo service nginx restart

2. 動態接口

     修改配置文件settings中

 ALLOWED_HOSTS = [..., 'www.aaaa.com']  CORS_ORIGIN_WHITELIST = ( '127.0.0.1:8080', 'localhost:8080', 'www.aaaa.com:8080', 'api.aaaa.com:8000', )

 

安裝uwsgi服務器

 pip install uwsgi

在項目目錄/meiduo_mall 下創建uwsgi配置文件 uwsgi.ini

[uwsgi] #使用nginx連接時使用,Django程序所在服務器地址 socket=127.0.0.1:8001 #直接做web服務器使用,Django程序所在服務器地址 #http=127.0.0.1:8001 #項目目錄 chdir=/Users/delron/Desktop/項目目錄 #項目中wsgi.py文件的目錄,相對於項目目錄 wsgi-file=項目下/wsgi.py # 進程數 processes=4 # 線程數 threads=2 # uwsgi服務器的角色 master=True # 存放進程編號的文件 pidfile=uwsgi.pid # 日志文件,因為uwsgi可以脫離終端在后台運行 daemonize=uwsgi.log # 指定依賴的虛擬環境 virtualenv=/Users/delron/.virtualenv/env
 
        

啟動uwsgi服務器

 uwsgi --ini uwsgi.ini

 
        

修改Nginx配置文件,讓Nginx接收到請求后轉發給uwsgi服務器

 
        
 upstream xiangmu{ server 127.0.0.1:8001; # 此處為uwsgi運行的ip地址和端口號 # 如果有多台服務器,可以在此處繼續添加服務器地址 }  server { listen 8000; server_name api.aaaa.com; location / { include uwsgi_params; uwsgi_pass xiangmu; } }

重啟nginx

 sudo service nginx restart

部署完成啟動項目

進入uwsgi.ini文件目錄中:

uwsgi --ini uwsgi.ini

成功!!

 
 
 
 
 












免責聲明!

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



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