Django部署

環境:Ubuntu 16.04.4, Django 2.0.4, Python 3.6.1, Nginx 1.10.3, uWSGI 5.4.0

為避免多個項目環境相互影響,部署在virtualenv下

一、安裝

注意:建議先不要安裝python-dev

sudo apt-get install  nginx 
sudo pip install virtualenv
pip install virtualenvwrapper

注意安裝順序。

二、配置

1、virtualenvwrapper相關配置

安裝virtualenvwrapper之后不能直接使用,需要配置路徑,首先找到對應的virtualenvwrapper.sh文件的路徑:

 find / -name virtualenvwrapper.sh

路徑為:/usr/local/bin/virtualenvwrapper.sh
找到路徑之后在/etc/profile中添加:

export WORKON_HOME=/home/virtualenvs 
source /usr/local/bin/virtualenvwrapper.sh

保存之后:

source /etc/profile

接下來就可以使用相關命令來操作。

2、uWSGI相關配置

安裝uWSGI在虛擬環境下安裝,
注意:如果python3環境下如果安裝不上,在服務器上安裝

sudo apt-get install libpython3.6-dev  

安裝完之后,再在虛擬環境下安裝uWSGI,之后運行的時候也需要在虛擬環境下運行
在項目目錄下新建uwsgi.ini

[uwsgi]
chdir=/home/sites/mysite/
module=mysite.wsgi:application
workers=5
pidfile=/home/sites/mysite/script/uwsgi.pid
http=0.0.0.0:8080
static-map=/statics=/home/sites/mysite/statics

uid=root
gid=root

master=true
vacuum=true
thunder-lock=true
enable-threads=true
harakiri=30
post-buffering=4096
daemonize=/home/sites/mysite/script/uwsgi.log
socket=/home/sites/mysite/script/uwsgi.sock  # 要跟nginx里面的uwsgi_pass一樣

uwsgi部分常用命令:

uwsgi --ini uwsgi.ini   # 啟動uwsgi配置
uwsgi --stop uwsgi.pid  # 關閉uwsgi
uwsgi --reload uwsgi.pid  #重新加載配置
3、Nginx相關配置

創建一個name.conf配置文件(nginx的默認配置目錄為/etc/nginx/conf.d)

nano /etc/nginx/conf.d/xxx.conf

配置文件信息如下:

server {
    listen      80;
    server_name server_name;
    access_log  /var/log/nginx/access.log;  # Nginx日志配置
    error_log  /var/log/nginx/error.log;
    charset     utf-8;
    gzip on;  # 啟用壓縮
    gzip_types text/plain application/x-javascript text/css text/java$
    error_page  404           /404.html;  # 錯誤頁面
    error_page   500 502 503 504  /50x.html;  # 錯誤頁面
    client_max_body_size 75M;
    location / {
            include     uwsgi_params;
            uwsgi_connect_timeout 30;
            uwsgi_pass  unix:///home/sites/mysite/script/uwsgi.sock;
            }
    location /static/ {
            alias  靜態文件路徑;
            index 首頁路徑;
    }
}

檢查nginx語法問題:

nginx -t  

正確的話會出現:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

nginx部分常用命令:

/etc/init.d/nginx start  #啟動
/etc/init.d/nginx stop  #關閉
/etc/init.d/nginx restart  #重啟

killall nginx   
/etc/init.d/nginx reload
4、Django setting.py更改設置
DEBUG = False
STATIC_ROOT = os.path.join(BASE_DIR, 'statics')

三、啟動

打開虛擬環境,cd到uwsgi.ini所在目錄下,

uwsgi --ini uwsgi.ini 
/etc/init.d/nginx start

正常的話,就可以訪問網站了
靜態文件收集:cd到manage.py所在目錄下,

python manage.py collectstatic
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容