Am un API (Python, bazat pe DRF), care rulează ca serviciu Uvicorn pe portul 8002 pe un server Debian.
Funcționează fără nicio problemă aparentă, de când fac eu curl http://127.0.0.1:8002/videos/, primesc răspunsul API așteptat (de asemenea, l-am testat când a fost implementat pe Heroku, fără nicio problemă).
Trebuie să îl servesc public cu Nginx, așa că am configurat un nou vhost Nginx ca proxy invers, după cum urmează:
 în amonte my_api {
     server 127.0.0.1:8002;
 }
 
 Server {
 
     nume_server example.com;
 
     Locație / {
         # Treceți la serviciul de server web Uvicorn/Gunicorn
         proxy_pass http://my_api;
         proxy_set_header Gazdă $gazdă;
         proxy_set_header X-Real-IP $adresă_la distanță;
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $schema;
     }
}
error_log /home/www/mydomain.log info;
Pe browser, primesc o eroare 400 Bad Request, indiferent dacă este activată http://example.com/videos/ sau chiar pe http://example.com/ sau http://example.com/whatever.
Când îl urmăresc pe /home/www/example.log Fișierul jurnal Nginx vhost, nu primesc nicio informație relevantă sau jurnale de la alte vhost-uri, cum ar fi următoarele:
2021/07/09 12:05:49 [info] 24698#24698: *233765 client 55.36.148.206 conexiune keepalive închisă
2021/07/09 12:06:12 [info] 24698#24698: *233772 client 217.244.66.202 conexiune keepalive închisă
2021/07/09 12:06:13 [info] 24698#24698: *233775 client a închis conexiunea în așteptarea solicitării, client: 63.210.40.102, server: 0.0.0.0:80
(Notă: punctul final unic funcționează pentru /Videoclipuri/ traseu dar nu pentru /Videoclipuri ruta - aceasta va fi rezolvată mai târziu, dar oricum asta nu ar trebui să interfereze cu întrebarea.)
Aveți idee cum să depanați/înțelegeți de unde vine această eroare 400?