Как привязать несколько доменов на одном сервере к нескольким проектам django?

Для привязки нескольких доменов к нескольким проектам 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 для получения более подробной информации.