Puncte:0

Eroare 502: Implementați aplicația Django cu Gunicorn și Nginx

drapel ar

Am dezvoltat o aplicație web cu Django și încerc să o public într-o mașină virtuală creată cu Azure. Pentru a face asta, folosesc următoarea stivă de software:

  • Ubuntu (20.04)
  • Django (3.0.7)
  • Virtualenv (20.0.17)
  • Gunicorn (20.1.0)
  • Nginx (1.18.0)

Pentru a implementa aplicația, am urmat acel ghid: https://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-16-04

Dosarele mele de proiect django sunt organizate după cum urmează:

Acasă/
ââ useradmin/
â ââ proiectul meu/
â â ââ proiect/
â â â ââ settings.py
â â â ââ urls.py
â â â ââ wsgi.py
â â â ââ ...
â â ââ static/
â â ââ şabloane/
â â ââ venv/
â â ââ manage.py
â â ââ ...

Acesta este al meu /etc/systemd/system/gunicorn.service:

[Unitate]
Descriere=demon gunicorn
După=rețea.țintă

[Serviciu]
User=useradmin
Grup=www-date
WorkingDirectory=/home/useradmin/myproject
ExecStart=/home/useradmin/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/useradmin/myproject/myproject.sock proj.wsgi:application
[Instalare]
WantedBy=multi-user.target

Acesta este al meu /etc/nginx/sites-available/myproject:

Server {
    asculta 80;
    nume_server domeniul meu.com;

    locație = /favicon.ico { access_log off; log_not_found off; }
    locație /static/ {
        root /home/useradmin/myproject;
    }

    Locație / {
        include proxy_params;
        proxy_pass http://unix:/home/useradmin/myproject/myproject.sock;
    }
}

Când navighez la mydomain.com, primesc o eroare 502 Bad Gateway. Dacă verific jurnalele Nginx rulând „sudo tail -F /var/log/nginx/error.log” văd următoarea eroare:

2022/03/16 08:27:33 [crit] 64480#64480: *3 connect() to unix:/home/useradmin/myproject/myproject.sock a eșuat (2: Nu există un astfel de fișier sau director) în timpul conectării la amonte, client: XX.XX.XX.XX, server: mydomain.com, cerere: „GET / HTTP/1.1”, în amonte: „http://unix:/home/useradmin/myproject/myproject.sock:/”, gazdă : „domeniul meu.com”

Pentru a crea fișierul sock, rulez următoarele instrucțiuni, dar nimic nu se schimbă:

systemctl daemon-reload
systemctl reporniți gunicorn.service

ACTUALIZARE 1:

Încercarea de a executa instrucțiunea ls -la /home/useradmin/myproject/myproject.sock Primesc eroarea ls: nu poate accesa „/home/useradmin/myproject/myproject.sock”: nu există un astfel de fișier sau director

djdomi avatar
drapel za
ce arată `ls -la /home/useradmin/myproject/myproject.sock`? și afaik ar putea fi o problemă mai ușoară - vă rugăm să încercați http://unix:/home/useradmin/myproject/myproject.sock: ;
El_Merendero avatar
drapel ar
Returnează `ls: cannot access '/home/useradmin/myproject/myproject.sock': Nu există un astfel de fișier sau director`
djdomi avatar
drapel za
reparați-vă serviciul unicorn la început și al doilea, vă rugăm să nu postați comentarii cu informațiile dvs., editați întrebarea și adăugați informațiile acolo
El_Merendero avatar
drapel ar
Ok, mulțumesc, editez întrebarea. Cum pot repara serviciul unicorn?
djdomi avatar
drapel za
```ExecStart='/home/useradmin/myproject/venv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/home/useradmin/myproject/myproject.sock proj.wsgi:application' ` `` poate fi problema... Deoarece afirmă ``` gunicorn: eroare: argument -b/--bind: aștept un argument ``` și oferiți 2 argumente, nu unul. Și un simbol minus pe care nu îl înțeleg pentru ce ar trebui să fie

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.