Для привязки нескольких доменов к нескольким проектам Django на одном сервере, вам потребуется настроить веб-сервер (например, Apache или Nginx) и Django.
Ниже приведены подробные инструкции для обоих веб-серверов:
1. Apache:
- Убедитесь, что у вас установлены Apache и модуль mod_wsgi
, который позволяет запускать Django приложения на Apache.
- Создайте виртуальное окружение для каждого проекта Django:
python3 -m venv /path/to/venv source /path/to/venv/bin/activate
- Установите все необходимые зависимости для каждого проекта:
pip install -r /path/to/project/requirements.txt
- Создайте файлы конфигурации для каждого домена в директории /etc/apache2/sites-available/
. Пример файла конфигурации может выглядеть так:
<VirtualHost *:80> ServerName domain1.com ServerAlias www.domain1.com DocumentRoot /path/to/project1 WSGIDaemonProcess domain1.com python-path=/path/to/project1:/path/to/venv/lib/python3.X/site-packages WSGIProcessGroup domain1.com WSGIScriptAlias / /path/to/project1/project1/wsgi.py <Directory /path/to/project1> Require all granted </Directory> </VirtualHost>
- Повторите этот шаг для каждого домена и проекта.
- Активируйте каждый конфигурационный файл:
sudo a2ensite domain1.com.conf
- Перезапустите Apache:
sudo service apache2 restart
2. Nginx:
- Убедитесь, что у вас установлен Nginx и Gunicorn, который будет запускать Django приложения.
- Создайте виртуальное окружение для каждого проекта Django и установите зависимости, как описано ранее для Apache.
- Создайте файлы конфигурации для каждого домена в директории /etc/nginx/sites-available/
. Пример файла конфигурации может выглядеть так:
server { listen 80; server_name domain1.com www.domain1.com; access_log /var/log/nginx/domain1.access.log; location / { proxy_pass http://localhost:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
- Повторите этот шаг для каждого домена и проекта.
- Активируйте каждый конфигурационный файл:
sudo ln -s /etc/nginx/sites-available/domain1.com /etc/nginx/sites-enabled/
- Перезапустите Nginx:
sudo service nginx restart
После выполнения этих шагов веб-сервер будет настроен на обработку запросов для каждого домена и перенаправлять их в соответствующие проекты Django. Захватывающее доменное имя будет использоваться для определения, какой проект Django должен обрабатывать запрос. Если у вас возникнут проблемы или вопросы, обратитесь к документации Django, Apache или Nginx для получения более подробной информации.