帮助中心 > 关于网络安全 > ubuntu系统如何通过Nginx部署Django
ubuntu系统如何通过Nginx部署Django
时间 : 2025-02-26 09:56:34
编辑 : Jtti

Django是一个高级Python Web框架,旨在帮助开发者快速开发复杂的、数据库驱动的Web应用。它遵循了“尽量少的代码”原则,提供了丰富的功能,使得开发者可以专注于应用的业务逻辑而不是重复的开发工作。在Ubuntu上通过Nginx部署Django项目,通常涉及以下步骤:

1. 安装必要的软件

你需要安装 Nginx 和一些 Python 环境工具(如 pip,virtualenv)来运行 Django。

sudo apt update
sudo apt install nginx
sudo apt install python3-pip python3-venv

2. 创建 Django 项目(如果还没有)

如果你还没有创建 Django 项目,可以通过以下步骤创建一个新的项目。

# 创建并激活虚拟环境
python3 -m venv myenv
source myenv/bin/activate

# 安装 Django
pip install django

# 创建 Django 项目
django-admin startproject myproject
cd myproject

3. 配置 Django 项目

修改 myproject/settings.py 文件,确保你为生产环境正确配置了 ALLOWED_HOSTS 和 DATABASES。

ALLOWED_HOSTS = ['your_domain_or_ip', 'localhost']

4. 安装 Gunicorn

Gunicorn 是一个 WSGI HTTP 服务器,能够运行 Django 应用。

pip install gunicorn

5. 启动 Gunicorn

你可以通过 Gunicorn 启动 Django 项目。

# 在项目目录下启动 Gunicorn
gunicorn --workers 3 myproject.wsgi:application

Gunicorn 默认在 8000 端口运行,你可以通过 http://your_domain_or_ip:8000 访问你的 Django 应用。

6. 配置 Nginx

Nginx 将作为反向代理,将请求转发给 Gunicorn。首先,创建一个新的 Nginx 配置文件。

sudo nano /etc/nginx/sites-available/myproject

在文件中添加以下内容:

server {
    listen 80;
    server_name your_domain_or_ip;

    location / {
        proxy_pass http://127.0.0.1:8000;  # Gunicorn 的地址
        proxy_set_header Host $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;
    }

    location /static/ {
        alias /path/to/your/static/directory;  # 指向 Django 项目的 static 目录
    }

    location /media/ {
        alias /path/to/your/media/directory;  # 指向 Django 项目的 media 目录
    }
}

7. 启用 Nginx 配置

创建符号链接,将配置文件链接到 sites-enabled 目录。

sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled

8. 测试 Nginx 配置

在重新加载 Nginx 之前,确保没有语法错误。

sudo nginx -t

9. 重新加载 Nginx

如果没有错误,重新加载 Nginx 配置以应用更改。

sudo systemctl restart nginx

10. 收集静态文件

Django 项目需要将静态文件收集到一个公共目录中,这样 Nginx 就能提供这些文件。

python manage.py collectstatic

11. 配置 Gunicorn 作为后台进程

为了使 Gunicorn 在后台运行,建议使用 systemd 来管理 Gunicorn 进程。

创建一个 systemd 服务文件:

sudo nano /etc/systemd/system/gunicorn.service

添加以下内容:

[Unit]
Description=gunicorn daemon for Django project
After=network.target

[Service]
User=your_user
Group=your_group
WorkingDirectory=/path/to/your/django/project
ExecStart=/path/to/your/virtualenv/bin/gunicorn --workers 3 --bind unix:/path/to/your/django/project/gunicorn.sock myproject.wsgi:application

[Install]
WantedBy=multi-user.target

启动 Gunicorn 服务:

sudo systemctl start gunicorn

sudo systemctl enable gunicorn

12. 访问你的 Django 应用

现在你应该可以通过 Nginx 访问你的 Django 应用了。打开浏览器,访问 http://your_domain_or_ip,你应该能看到 Django 默认的欢迎页面。

这就是在 Ubuntu 上通过 Nginx 部署 Django 项目的基本步骤。如果有更多的配置要求或需要优化性能等,可以进一步调整 Gunicorn 和 Nginx 的配置。

相关内容

DNS污染与DNS劫持:区别与防护指南 服务器机房专用UPS不间断电源的使用寿命是多久? 企业选择SAAS软件的注意事项有哪些? Linux服务器如何安装wordpress插件? 在 Windows 上安装 Git详细教程 如何查看ubuntu内存条型号? web服务器怎么配置多ip访问? 单处理器服务器与双处理器服务器的比较 如何将本地文件拷贝到云服务器:全面指南 Windows系统升级 Git 到最新版本的完整指南
返回

24/7/365 全天候支持我们时刻恭候您

帮助中心