在CentOS7上部署Django项目的简单步骤

Django项目简单的部署步骤:

Django简单设置部分:

  1. 设置虚拟环境
  2. 激活虚拟环境
  3. 安装Django项目依赖
  4. 收集静态文件资源
  5. 给文件目录nginx权限
python3.6 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python manage.py  collectstatic
chown nginx:nginx -R .

Gunicorn简单设置:

  1. 安装gunicorn
  2. 配置服务文件
  3. 启用gunicorn服务
  4. 设置开机启动服务
pip install gunicorn
vim /etc/systemd/system/gunicorn-gebilao.wang.service
systemctl start gunicorn-gebilao.wang.service
systemctl enable gunicorn-gebilao.wang.service

gunicorn服务gunicorn-gebilao.wang.service文件的具体配置内容如下:

[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=nginx
Group=nginx
WorkingDirectory=/www/gebilao.wang
ExecStart=/www/gebilao.wang/venv/bin/gunicorn --workers 4 --user nginx --group nginx --bind unix:/www/sockets/gebilao.wang.socket web.wsgi:application

[Install]
WantedBy=multi-user.target

Nginx设置部分:

  1. 配置文件nginx虚拟主机文件
  2. 建立链接
  3. 重载nginx服务,重载前可以使用nginx -t测试配置文件
vim /etc/nginx/sites-available/gebilao.wang.conf
sudo ln -s /etc/nginx/sites-available/gebilao.wang.conf /etc/nginx/sites-enabled/gebilao.wang.conf
systemctl reload nginx

nginx 虚拟主机gebilao.wang.conf具体配置文件如下:


server {
    charset utf-8;
    listen 80;
    server_name gebilao.wang www.gebilao.wang;

    location = /favicon.ico { access_log off; log_not_found off; }

    location / {
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_pass http://unix:/www/sockets/gebilao.wang.socket;
    }
}

如需www与不含www的主机头重定向,请参阅:nginx 301重定向www主机头到不含www的配置方法

如果修改了gunicorn配置,可以使用systemctl daemon-reload重载服务。

如果修改了Django代码,可以使用systemctl restart gunicorn-gebilao.wang.service重载后的代码。

至此,整个配置流程完成。