1. 程式人生 > >Ubuntu 下面部署Django 項目

Ubuntu 下面部署Django 項目

django nginx

django 是 python 開源的 web 框架 ,django 本身運行後也是一個輕量級的服務器,可以滿足本地的測試,生產環境中的 大量訪問, 一般和nginx 和 apache 結合。下面以 Django 與nginx 結合為例進行部署


1、 部署環境


操作系統:Ubuntu 16.04.2


nginx 版本:nginx/1.10.3


2、部署原理

client----》nginx ----》socket ----》uwsgi----》Django



3、安裝步驟


3.1 安裝 nginx


apt-get install nginx


systemctl start nginx


測試 Nginx


技術分享圖片

3.2 安裝 uwsgi


pip install uwsgi


在opt 下面創建 test.py 測試 uwsgi 是否正常安裝

#!/usr/bin/env python
def application(env,start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return ["Hello World"]


測試 :

uwsgi --http:8000 --wsgi-file test.py


訪問 ip:8000,uwsgi 測試成功


技術分享圖片



3.3 Nginx+uwsgi+django


上傳 django 項目至 OurCMDB


創建 OurCMDB_uwsgi.ini 配置文件

#OurCMDB_uwsgi.ini
[uwsgi]
# Django-related settings

socket = :8000 # socket 監聽端口,對應下文nginx 配置文件 uwsgi_pass 監聽的端口號
# the base directory (full path)
chdir           = /opt/OurCMDB/    #項目目錄

# Django s wsgi file
module          = OurCMDB.wsgi    #wsgi.py 創建django 項目時已經生成 目錄 /opt/OurCMDB/OurCMDB/wsgi.py

# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 4  #

# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
vacuum          = true


查看項目下面的文件


技術分享圖片


新增nginx 虛擬配置文件

cat /etc/nginx/sites-available/OurCMDB_nginx.conf

server {
    listen         8010; 
    server_name    _;
    charset UTF-8;
    access_log      /var/log/nginx/OurCMDB_access.log;
    error_log       /var/log/nginx/OurCMDB_error.log;

    client_max_body_size 75M;

    location / { 
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8000; #
        uwsgi_read_timeout 2;
    }   
    location /static {
        expires 30d;
        autoindex on; 
        add_header Cache-Control private;
        alias /opt/OurCMDB/static/; 
     }
 }

創建 軟連接 ln -s OurCMDB_nginx.conf ../sites-enabled/OurCMDB_nginx.conf


啟動

uwsgi --ini OurCMDB_uwsgi.ini


檢查Nginx 配置文件

技術分享圖片


啟動nginx


訪問測試 django


http://ip:8010/

技術分享圖片



Ubuntu 下面部署Django 項目