Я исчерпал себя, пытаясь решить эту проблему, я надеюсь, что смогу получить некоторую помощь
Я хочу разместить два проекта Django на одной капле DigitalOcean.Я могу без проблем разместить один сайт после выполнения этого руководства , но я просто не могу найти способ заставить эту работу работать с двумя сайтами.В настоящее время example.com работает, и example2.com имеет проблему с тем, что он использует модуль настроек project1 - project1.settings.Мне нужно использовать модуль project2.settings из его директории проекта, и я не знаю, как это сделать.
Мой файл gunicorn.socket для проекта 1:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
Мой оружейный.файл сокета для проекта 2:
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/project2.gunicorn.sock
[Install]
WantedBy=sockets.target
Мой файл gunicorn.service для проекта 1:
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=rain
Group=www-data
WorkingDirectory=/home/rain/rv/project1-web
ExecStart=/home/rain/rv/rv-env/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
project1.wsgi:application
[Install]
WantedBy=multi-user.target
Я подумал, что должен быть второй служебный файл для другого проекта, поэтому я создал project2.gunicorn.service:
[Unit]
Description=gunicorn daemon
Requires=project2.gunicorn.socket
After=network.target
[Service]
User=rain
Group=www-data
WorkingDirectory=/home/rain/rv/project2-web
ExecStart=/home/rain/rv/rv-env/bin/gunicorn \
--access-logfile - \
--workers 3 \
--bind unix:/run/gunicorn.sock \
project2.wsgi:application
[Install]
WantedBy=multi-user.target
Файл, доступный моим сайтам nginx для проекта 1:
server {
server_name example.com;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/rain/rv/project1-web;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name www.example.com;
charset utf-8;
return 301 https://example.com$request_uri;
}
server {
if ($host = www.example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name example.com www.example.com;
return 404; # managed by Certbot
}
И еще один блок сервера для проекта 2:
server {
server_name example2.com;
charset utf-8;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
root /home/rain/rv/project2-web;
}
location / {
include proxy_params;
proxy_pass http://unix:/run/project2.gunicorn.sock;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/example2.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/example2.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
server {
server_name www.example2.com;
charset utf-8;
return 301 https://example2.com$request_uri;
}
server {
if ($host = www.example2.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
if ($host = example2.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80;
server_name example2.com www.example2.com;
return 404; # managed by Certbot
}