如何在Linux上部署Django Web应用
在Linux上部署Django Web应用,你可以遵循以下步骤:
- 安装Python和pip(如果尚未安装)。
- 创建Django项目。
- 安装项目依赖。
- 配置数据库(例如PostgreSQL)。
- 收集静态文件(可选)。
- 配置Web服务器(例如Gunicorn)。
- 配置Nginx作为反向代理。
- 设置Supervisor以管理Gunicorn进程。
- 配置Django的
ALLOWED_HOSTS
。 - 启动服务并测试。
以下是具体命令和配置示例:
# 安装Python和pip
sudo apt-get update
sudo apt-get install python3 python3-pip
# 创建Django项目
django-admin startproject myproject
# 安装项目依赖
cd myproject
pip3 install -r requirements.txt
# 配置数据库(以PostgreSQL为例)
sudo -u postgres createuser --interactive
sudo -u postgres createdb myproject_db
# 收集静态文件
python3 manage.py collectstatic
# 安装Gunicorn
pip3 install gunicorn
# 配置Gunicorn(可选)
echo "[program:myproject]
command=/usr/bin/gunicorn --bind unix:/var/www/myproject/myproject.sock myproject.wsgi:application
directory=/var/www/myproject
user=www-data
stdout_logfile=/var/log/gunicorn/myproject.log
stderr_logfile=/var/log/gunicorn/myproject.log
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
redirect_stderr=true
" | sudo tee /etc/supervisor/conf.d/myproject.conf
# 安装Nginx
sudo apt-get install nginx
# 配置Nginx
echo "
upstream django {
server unix:/var/www/myproject/myproject.sock;
}
server {
listen 80;
server_name example.com;
location /static/ {
alias /var/www/myproject/static/;
}
location / {
proxy_pass http://django;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
" | sudo tee /etc/nginx/sites-available/myproject
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled/
# 重新加载Nginx配置
sudo systemctl reload nginx
# 更新Django的ALLOWED_HOSTS
echo "ALLOWED_HOSTS = ['example.com']" >> myproject/settings.py
# 启动Supervisor
sudo systemctl restart supervisor
# 测试服务
curl http://example.com
确保替换example.com
和项目名称myproject
为你自己的域名和项目名称,并根据你的服务器配置调整用户和目录。
以上步骤和配置是基本的部署流程,根据你的具体需求,可能需要额外的步骤,例如配置SSL、设置权限、调整资源限制等。
评论已关闭