我有一个 Django 项目。我想将其托管在 VPS 上。我看到了一些 VPS 服务,并且喜欢 Hostinger VPS。我想将其托管到该 VPS。
但问题是,我正在使用 Django Celery。我也在使用 Django 通道 (WebSocket)。这意味着,你知道,我正在使用 ASGI。 我想使用 Apache 服务器。
我可以知道如何在VPS上部署这个项目吗?
我已经部署了一个类似的项目。
您可以使用 Uvicorn 在 ASGI 模式下运行 Django,并执行正常的部署步骤,例如 Apache 配置和重定向...
当然,我可以指导您完成在具有 Apache 服务器的 VPS 上使用 Django Channels (ASGI) 和 Celery 部署 Django 项目的过程。在继续之前,请确保您拥有必要的凭据并可以访问您的 Hostinger VPS。
这是部署 Django 项目的分步指南:
设置您的 VPS:
更新和升级包:
sudo apt-get update
sudo apt-get upgrade
安装所需的软件包:
sudo apt-get install python3 python3-pip python3-venv
设置虚拟环境:
python3 -m venv myprojectenv
source myprojectenv/bin/activate
克隆您的 Django 项目:
git clone <your_project_git_repository> myproject
cd myproject
安装项目依赖项:
pip install -r requirements.txt
配置 Django 设置:
设置 Apache 和 mod_wsgi:
sudo apt-get install apache2 libapache2-mod-wsgi-py3
配置 Apache 虚拟主机:
myproject.conf
目录中创建名为 /etc/apache2/sites-available/
的文件。<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>
启用虚拟主机并重新启动 Apache:
sudo a2ensite myproject
sudo service apache2 restart
设置并运行 Celery Workers:
celery -A myproject worker -l info
设置并运行 Django Channels (ASGI) 应用程序:
pip install daphne
daphne -b 0.0.0.0 -p 8000 myproject.asgi:application
就是这样!您的带有 Django Channels (ASGI) 和 Celery 的 Django 项目现在应该部署在带有 Apache 服务器的 Hostinger VPS 上。
请注意,本指南提供了部署过程的基本概述。根据项目的复杂性和具体要求,您可能需要进行其他配置和调整。参考 Django、Django Channels、Celery 和 Apache 的官方文档以获取更多详细信息总是一个好主意。