如何在托管商 VPS 上托管 Django 项目?

问题描述 投票:0回答:2

我有一个 Django 项目。我想将其托管在 VPS 上。我看到了一些 VPS 服务,并且喜欢 Hostinger VPS。我想将其托管到该 VPS。

但问题是,我正在使用 Django Celery。我也在使用 Django 通道 (WebSocket)。这意味着,你知道,我正在使用 ASGI。 我想使用 Apache 服务器。

我可以知道如何在VPS上部署这个项目吗?

django apache websocket celery vps
2个回答
0
投票

我已经部署了一个类似的项目。

您可以使用 Uvicorn 在 ASGI 模式下运行 Django,并执行正常的部署步骤,例如 Apache 配置和重定向...


-2
投票

当然,我可以指导您完成在具有 Apache 服务器的 VPS 上使用 Django Channels (ASGI) 和 Celery 部署 Django 项目的过程。在继续之前,请确保您拥有必要的凭据并可以访问您的 Hostinger VPS。

这是部署 Django 项目的分步指南:

  1. 设置您的 VPS:

    • 从 Hostinger 购买 VPS 套餐并获取必要的登录凭据。
    • 使用终端或使用提供的凭据的 SSH 客户端(例如 PuTTY(适用于 Windows))通过 SSH(安全外壳)访问您的 VPS。
  2. 更新和升级包:

    • 登录您的 VPS 后,更新软件包列表并将已安装的软件包升级到最新版本。
    sudo apt-get update
    sudo apt-get upgrade
    
  3. 安装所需的软件包:

    • 安装运行 Django 项目所需的包,包括 Python、pip 和其他依赖项。
    sudo apt-get install python3 python3-pip python3-venv
    
  4. 设置虚拟环境:

    • 为您的 Django 项目创建一个虚拟环境以隔离其依赖项。
    python3 -m venv myprojectenv
    source myprojectenv/bin/activate
    
  5. 克隆您的 Django 项目:

    • 使用 git 将 Django 项目存储库从其源(例如 GitHub)克隆到 VPS。
    git clone <your_project_git_repository> myproject
    cd myproject
    
  6. 安装项目依赖项:

    • 在虚拟环境中安装 Django 项目所需的 Python 包。
    pip install -r requirements.txt
    
  7. 配置 Django 设置:

    • 更新 Django 设置以配置 Django 通道和 Celery 设置的 ASGI 接口。确保为 Django Channels 指定适当的 ASGI 后端,例如 Daphne。
    • 此外,请确保您已设置正确的允许主机、数据库配置和其他必要的设置。
  8. 设置 Apache 和 mod_wsgi:

    • 在您的 VPS 和 mod_wsgi 上安装 Apache 来为您的 Django 应用程序提供服务。
    sudo apt-get install apache2 libapache2-mod-wsgi-py3
    
  9. 配置 Apache 虚拟主机:

    • 在 Apache 配置文件夹中为 Django 项目创建虚拟主机配置。例如,在
      myproject.conf
      目录中创建名为
      /etc/apache2/sites-available/
      的文件。
    • 这是 Apache 的示例配置:
    <VirtualHost *:80>
        ServerName example.com
        ServerAlias www.example.com
    
        WSGIDaemonProcess myproject python-path=/path/to/your/django/project:/path/to/your/virtualenv/lib/python3.X/site-packages
        WSGIProcessGroup myproject
        WSGIScriptAlias / /path/to/your/django/project/myproject/wsgi.py
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  10. 启用虚拟主机并重新启动 Apache:

    • 启用您创建的虚拟主机并重新启动 Apache。
    sudo a2ensite myproject
    sudo service apache2 restart
    
  11. 设置并运行 Celery Workers:

    • 根据您的喜好安装 Redis 或 RabbitMQ 作为 Celery 的消息代理。
    • 在 Django 项目设置中配置 Celery 以使用所选的消息代理。
    • 在 VPS 上启动 Celery 工作线程。
    celery -A myproject worker -l info
    
  12. 设置并运行 Django Channels (ASGI) 应用程序:

    • 安装 Daphne,这是为 Django Channels 推荐的 ASGI 服务器。
    pip install daphne
    
    • 启动 Daphne 服务器来为您的 Django Channels 应用程序提供服务。
    daphne -b 0.0.0.0 -p 8000 myproject.asgi:application
    

就是这样!您的带有 Django Channels (ASGI) 和 Celery 的 Django 项目现在应该部署在带有 Apache 服务器的 Hostinger VPS 上。

请注意,本指南提供了部署过程的基本概述。根据项目的复杂性和具体要求,您可能需要进行其他配置和调整。参考 Django、Django Channels、Celery 和 Apache 的官方文档以获取更多详细信息总是一个好主意。

© www.soinside.com 2019 - 2024. All rights reserved.