Puncte:2

Urls.py nu se actualizează pe serverul de producție Django, care folosește nginx și gunicorn

drapel in

În prezent găzduiesc o aplicație web Django pe o instanță AWS EC2. Pentru a o rula în modul producție folosesc NGINX și gunicorn.

The Eroare cu care ma confrunt este:

Serverul de producție nu pare să actualizeze urls.py, indiferent ce fac

Aplicație folosită pentru a transfera fișiere din fișierul local în instanță : FileZilla

Pași pe care i-am făcut încercând să rezolv problema:

  1. Ștergerea urls.py și rescrierea acestuia

  2. Verificați dacă și alte fișiere refuză să fie actualizate

    REZULTAT al pasului 2: Alte fișiere sunt actualizate cu succes, am testat cu fișiere statice iar cu index.html

  3. Verificarea dacă fișierul este actualizat în instanță folosind The nano editor

    REZULTAT al pasului 3: fișierul este actualizat corect în instanță, cu toate modificările reflectat

  4. Rularea acestuia pe instanță folosind python manage.py runserver (în scopuri de dezvoltare) și am aflat că urls.py este actualizat corect atunci când utilizați runserver

Alte informații:

1.Totul a fost actualizat corect chiar ieri, dar brusc decide să se comporte rebel

  1. Am actualizat toate pachetele folosind sudo yum install

  2. Am repornit nginx și gunicorn: folosind comenzi precum:

    sudo systemctl start gunicorn

    sudo systemctl enable gunicorn

    sudo systemctl reporniți nginx

  3. Am încercat să verific erori folosind sudo nginx -t, dar nu apar erori

  4. Am verificat jurnalele de erori, folosind sudo tail -f /var/log/nginx/error.log , dar nu apar erori
    nici aici sus

Cum rezolv asta?

Mulțumesc

Michael Hampton avatar
drapel cz
Aplicația dvs. rescrie în mod dinamic urls.py? Verificați oriunde este [logging](https://docs.djangoproject.com/en/3.2/topics/logging/) pentru orice mesaje relevante.
Madhav avatar
drapel in
Îmi pare rău, dar este prima dată când aud despre înregistrare în jurnal, așa că ar putea dura ceva timp să-mi dau seama cum să „înregistrez”, așa că următorul meu răspuns ar putea dura ceva timp și vă mulțumesc oricum pentru că m-ați ajutat
Madhav avatar
drapel in
Și în ceea ce privește rescrierea dinamică a urls.py.. în serverul de producție, da, nu se actualizează, mai degrabă decât se rescrie .... dar când îl găzduiesc folosind manage.py runserver , pare să funcționeze foarte bine și aceleași fișiere sunt utilizate atât în ​​producție, cât și în dezvoltare
Michael Hampton avatar
drapel cz
Puteți face clic pe link pentru a afla despre înregistrare. Valorile implicite sunt afișate la sfârșitul paginii. Dacă nu ați configurat înregistrarea, atunci acestea vor fi trimise la stdout sau stderr și vor ajunge în jurnalul systemd (cu excepția cazului în care ați configurat unitatea de service systemd pentru a le redirecționa).
Madhav avatar
drapel in
@MichaelHampton Am observat, de asemenea, că view.py nu s-a actualizat și că singurul lucru care se actualizează corect sunt fișierele html și fișierele statice, lucrez la jurnalele chiar acum. dar m-am gândit, ar trebui să vă anunț această observație, în cazul în care aceasta vă va spune mai multe despre problema mea
Madhav avatar
drapel in
MIchealllll l-am rezolvat ...... se dovedește că trebuia să-mi repornesc gunicornul folosind `sudo systemctl restart gunicorn`, mulțumesc mult pentru că ai încercat să mă ajuți, mai ales dacă mă prezint în jurnalele, mă voi uita la acestea
anx avatar
drapel fr
anx
Puncte bonus pentru scrierea unei întrebări care citează de fapt problema cheie.. ***repornire** [..] gunicorn folosind [..] **start** [în loc de restart]* ;)
Madhav avatar
drapel in
apreciez votul pozitiv!!
Puncte:1
drapel in

Ok deci am gasit solutia.

Pași parcurși pentru a o rezolva:

  1. Am încercat să folosesc python3 manage.py runserver la instanța mea și am aflat că fișierele au fost actualizate bine, prin urmare problema a fost cu partea de producție

  2. Mi-am dat seama că doar fișierele statice și html erau actualizate (nginx servește la acestea), așa că problema nu era cu asta

  3. Folosisem gunicorn pentru a ajuta cu views.py și urls.py și alte astfel de fișiere, așa că problema ar putea fi cu gunicorn

SOLUȚIE FINALĂ:

Așa că am rulat comanda sudo systemctl reporniți gunicorn, iar codul a funcționat perfect

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.