欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Django部署

程序员文章站 2022-06-11 11:37:51
...

环境: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
复制代码

转载于:https://juejin.im/post/5c807d955188251b8c76a835