У меня была та же проблема, и я наткнулся на этот вопрос в поисках того же ответа.
Я знаю, что вопрос старый, и вы, вероятно, уже поняли его, но, поскольку он может быть полезен длякто-то еще, вот как я решил это:
Вам нужно запустить отдельные процессы gunicorn, чтобы заставить работать инфраструктуру сайтов django, потому что вы можете указывать экземпляр gunicorn только на один файл settings.py.Если ваши сайты не получают большого трафика, я бы создал 1 или 2 рабочих-оружейников на сайт.(Я знаю, все еще, вероятно, излишне).
В идеале вы хотели бы управлять этими различными процессами с помощью чего-то вроде supervisord , чтобы упростить управление запуском / остановкой /перезапускаю разные сайты, но я не могу заставить его работать.
Сначала запустите ваши серверы gunicorn на локальном хосте в разных портах с помощью командной строки.Пример:
gunicorn_django -w 2 -b 127.0.0.1:1000 /path/to/my/django/project/site1_settings.py --daemon
gunicorn_django -w 2 -b 127.0.0.1:1001 /path/to/my/django/project/site2_settings.py --daemon
Теперь у вас есть 2 сайта django, работающих на локальном хосте через порты 1000 и 1001 (вы можете использоватьнезависимо от того, какие порты вам подходят).
Теперь вам нужно создать два отдельных файла конфигурации сервера nginx, чтобы каждое доменное имя указывало на соответствующий сайт django.Пример:
server {
listen 80;
server_name website1.com;
client_max_body_size 4G;
keepalive_timeout 4;
location /media {
root /path/to/my/django/project/media; #this servers your static files
}
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header HOST $http_host;
proxy_redirect off;
if (!-f $request_filename){
proxy_pass http://127.0.0.1:1000; #point to the django site already running on local host
break;
}
}
#add in any additional nginx configuration such as support for 500 errors or proxy apache to server php files etc.
}
Затем создайте дубликат конфигурации nginx для вашего второго сайта, но измените имя сервера и proxy_pass на значения для сайта 2.
Убедитесь, что конфигурация вашего серверафайлы включены в основной файл nginx.conf.
Перезагрузите nginx, и вам будет хорошо.
Если у кого-то есть более простой / лучший способ сделать это, пожалуйста, опубликуйте его.