django項目部署Nginx+uwsgi

1. 靜態文件

當Django運行在生產模式時,將不再提供靜態文件的支持,需要將靜態文件交給靜態文件服務器。

我這裏項目目錄是:/opt/server,靜態文件夾是/opt/front_end_pc/static。

Django提供了收集靜態文件的方法。設置配置文件中配置收集之後存放的目錄將靜態文件複製到front_end_pc目錄下的static目錄中

注意把 STATICFILES_DIRS此行註釋掉,添加以下

DEBUG = False
STATIC_ROOT = os.path.join(os.path.dirname(os.path.dirname(BASE_DIR)), 'front_end_pc/static')

然後執行收集命令

python manage.py collectstatic

2.uwsgi安裝和配置啓用

pip install uwsgi

2.1 在項目目錄/opt/server 下創建uwsgi配置文件 uwsgi.ini


[uwsgi]
#使用nginx連接時使用,Django程序所在服務器地址
socket=127.0.0.1:8001
#項目目錄
chdir=/opt/server
#項目中wsgi.py文件的目錄,相對於項目目錄
wsgi-file=server/wsgi.py
# 進程數
processes=4
# 線程數
threads=2
# uwsgi服務器的角色
master=True
# 存放進程編號的文件
pidfile=uwsgi.pid
# 日誌文件,因爲uwsgi可以脫離終端在後臺運行,日誌看不見。我們以前的runserver是依賴終端的
daemonize=uwsgi.log
# 指定依賴的虛擬環境
virtualenv=/root/.virtualenvs/py3

2.2 啓動uwsgi服務器

uwsgi --ini uwsgi.ini

注意如果想要停止服務器,除了可以使用kill命令之外,還可以通過

uwsgi --stop uwsgi.pid

 

3. 配置Nginx

使用Nginx服務器作爲靜態文件服務器

vim /etc/nginx/nginx.comf

server {
        listen 80;
        location = /favicon.ico {
        log_not_found off;
        access_log off;
        }
        location / {
        include uwsgi_params;
        uwsgi_pass 127.0.0.1:8001;
        }
        location /static {
        # 靜態文件配置
        alias /opt/front_end_pc/;
        }

    }

注意安裝uwsgi

1.獲取最新版uwsgi

wget http://projects.unbit.it/downloads/uwsgi-latest.tar.gz

2. 解壓

tar zxvf uwsgi-latest.tar.gz

3. 編譯

cd uwsgi-2.0.18.1/
python3 uwsgiconfig.py --build

4. 安裝

python3 setup.py install

5. 建立軟連接,注意如果以前安裝過uwsgi請刪除以前的uwsgi文件

ln -s /usr/local/bin/uwsgi /usr/bin/
vim uwsgi.ini

[uwsgi]
#直接做web服務器使用,Django程序所在服務器地址
socket=192.168.1.117:8001
#項目目錄
chdir=/opt/server
#項目中wsgi.py文件的目錄,相對於項目目錄
wsgi-file=server/wsgi.py
# 進程數
processes=4
# 線程數
threads=2
# uwsgi服務器的角色
master=True
# 存放進程編號的文件
pidfile=uwsgi.pid
# 日誌文件,因爲uwsgi可以脫離終端在後臺運行,日誌看不見。我們以前的runserver是依賴終端的
daemonize=uwsgi.log

 

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