У меня есть статический веб-сайт, который работает domain.com
, и проект Django, который работает domain.com/djangoproject1
, теперь я пытаюсь добавить еще один проект Django как domain.com/djangoproject2
, это мой sites-avaliable
server {
listen 80;
listen [::]:80;
server_name domain.com www.domain.com;
return 301 https://$host$request_uri;
}
#upstream djangoapp1 { # This did not work
# server 127.0.0.1:9000 fail_timeout=0;
#}
#upstream djangoapp2 { # This did not work
# server 127.0.0.1:7000 fail_timeout=0;
#}
server {
listen 443 ssl;
server_name ...;
ssl_certificate ...
ssl_certificate_key ...;
root /var/www/portfolio; #Serves static portfolio and works
index index.html; #Serves static portfolio and works
location / {
try_files $uri $uri/ =404;
}
location /djangoapp1static/ { #Works for app 1 and matches settings
alias /home/djangoapp1...
}
location /djangoapp2static/ {
alias /home/djangoapp2...
}
location /djangoapp1{
alias /home/djangoapp1/src/;
include proxy_params;
proxy_pass http://unix:/run/gunicorn.sock; #WORKS
#proxy_pass http://djangoapp1; #Does not work even without the second app
#proxy_pass http://127.0.0.1:9000; #Does not work even without the second app
}
location /djangoapp2{
alias /home/djangoapp2/src/;
include proxy_params;
proxy_pass http://unix:/run/djangoapp2.sock; #This works for djangoapp1 but not for this one
#proxy_pass http://djangoapp2; #Tried did not work
#proxy_pass http://127.0.0.1:7000; #Tried did not work
}
}
В настоящее время djangoapp1
работает нормально, а djangoapp2
работает только тогда, когда я вручную запускаю его с помощью gunicorn --bind 127.0.0.1:7000 config.wsgi
, поэтому он должен иметь какое-то отношение к gunicorn
djangoapp2.sock
, sites-avaliable
связан с sites-enabled
, так что это не проблема.
когда я sudo systemctl status djangoapp2
я получаю
× djangoapp2.service - gunicorn daemon
Loaded: loaded (/etc/systemd/system/djangoapp2.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Fri 2022-12-23 08:04:16 UTC; 41min ago
Duration: 462ms
TriggeredBy: × djangoapp2.socket
Main PID: 47712 (code=exited, status=1/FAILURE)
CPU: 455ms
.service
файлы изменены и названы соответственно приложениям
согласно https://www.ryancheley.com/2021/03/07/setting-up-multiple-django-sites-on-a-digital-ocean-server/ то, что я пытаюсь сделать, должно быть возможный
Кто-нибудь размещает несколько приложений Django, как я пытаюсь сделать? Я не хочу djangoapp1.domain.com
и djangoapp2.domain.com
, я хочу, чтобы они были /djangoapp1
и /djangoapp2
Мне нужно было два экземпляра gunicorn, каждый в своем venv вместо использования глобального usr/bin/gunicorn
. Пересоздал .service
и .socket
файлы, start
-> enable
-> перезагрузил все, работает.