Ubuntu18.04或者Deepin15.8 部署Django項目


一、首先先安裝nginx靜態服務

1.安裝gcc g++的依賴庫
sudo apt-get install build-essential && sudo apt-get install libtool


2.安裝pcre依賴庫
sudo apt-get install libpcre3 libpcre3-dev

3.安裝zlib依賴庫
sudo apt-get install zlib1g-dev

4.安裝ssl依賴庫
sudo apt-get install openssl

安裝nginx

# 下載
sudo wget http://nginx.org/download/nginx-1.11.3.tar.gz

# 解壓
sudo tar -zxvf nginx-1.11.3.tar.gz

# 在 /usr/local/ 目錄下創建nginx目錄,然后把解壓好的放到 /usr/local/nginx 下
sudo mkdir nginx
sudo mv nginx-1.11.3 /usr/local/nginx

# 編譯nginx
cd /usr/local/nginx/nginx-1.11.3
#配置:
sudo ./configure
#編譯
sudo make

在編譯步驟出現如下錯誤:

 

解決辦法

找到對應的Maakefile文件,將gcc參數中的-Werror去掉。

我上面顯示的是objs/Makefile文件,我打開看了下,將第三行的-Werror去掉就可以

 

 修改保存之后重新運行sudo make進行編譯

#安裝nginx:
sudo make install
#啟動nginx:

cd /usr/local/nginx

sudo sbin/nginx

#關閉nginx命令:

sudo sbin/nginx -s stop

ps aux|grep nginx 查看nginx進程狀態

 
        

 

配置nginx

cd /usr/local/nginx/conf/

使用vim或gedit編輯器在該目錄下新建一個ihasy.conf文件輸入以下內容:

upstream ihasy  {
    server 127.0.0.1:9001; #Tornado
}

## Start www.ihasy.com ##
server {
    listen 80;
    server_name  www.ihasy.com ihasy.com;

    #root   html;
    #index  index.html index.htm index.py index;

    ## send request back to Tornado ##
    location / {
        proxy_pass  http://ihasy;

        #Proxy Settings
        proxy_redirect     off;
        proxy_set_header   Host             $host;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
        proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
        proxy_max_temp_file_size 0;
        proxy_connect_timeout      90;
        proxy_send_timeout         90;
        proxy_read_timeout         90;
        proxy_buffer_size          4k;
        proxy_buffers              4 32k;
        proxy_busy_buffers_size    64k;
        proxy_temp_file_write_size 64k;
   }
}
## End www.ihasy.com ##

 

 

再使用vim或gedit打開 /usr/local/nginx/conf/nginx.conf

sudo gedit /usr/local/nginx/conf/nginx.conf

在http下添加一行

include ihasy.conf

保存,重啟nginx,即可實現反向代理。

 之后 再重新編輯/usr/local/nginx/conf/nginx.conf文件 配置項目前后端

 

# 動態url設置地址設置
server {
listen 8000;
# 只是給ip取個名字,也可以用ip:port的方式
# server_name 127.0.0.1;

location / {
uwsgi_pass 127.0.0.1:3309;
include uwsgi_params;
}

}

# 靜態文件地址設置
server {
listen 80;
# 只是給ip取個名字,也可以用ip:port的方式
server_name 127.0.0.1;
#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /home/zx/Desktop/meiduo_mall/front_end_pc;
index index.html index.htm;
}

}

保存退出之后需要在項目配置文件中添加生成前端靜態文件:

將  DEBUG = True  改為 DEBUG = False

然后添加  

STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)),'front_end/static')

然后在項目下運行命令  

python manage.py collectstatic

生成靜態文件。

這樣再啟動nginx服務,前端頁面就可以運行成功。

 

二 、接下來配置動態后端服務:

在python環境下 直接 pip install uwsgi

在后端項目目錄下新建  uwsgi.ini文件

配置uwsgi.ini文件如下:

 

[uwsgi]

#使用nginx連接時使用,Django程序所在服務器地址

socket=127.0.0.1:3309

#直接做web服務器使用,Django程序所在服務器地址

#http=127.0.0.1:8000

#項目目錄

chdir=/home/python/Desktop/meiduo/meiduo_mall

#項目中wsgi.py文件的目錄,相對於項目目錄

wsgi-file=meiduo_mall/wsgi.py

# 進程數

processes=4

# 線程數

threads=2

# uwsgi服務器的角色

master=True

# 存放進程編號的文件

pidfile=uwsgi.pid

# 日志文件,因為uwsgi可以脫離終端在后台運行,日志看不見。我們以前的runserver是依賴終端的

daemonize=uwsgi.log

# 指定依賴的虛擬環境

virtualenv=/home/python/.virtualenvs/xxx(虛擬環境名稱)

 

 

沒有虛擬環境的可以刪除最后兩行,這樣后端配置文件寫好之后,啟動uwsgi服務 

uwsgi --ini uwsgi.ini

關閉命令   uwsgi --stop uwsgi.pid

到此,一個簡單的Django項目部署就完成了!!!


免責聲明!

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



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