У меня есть API (на основе Python, DRF), работающий как служба Uvicorn на порту 8002 на сервере Debian.
Он работает без видимых проблем, так как, когда я делаю завиток http://127.0.0.1:8002/videos/
, я получаю ожидаемый ответ API (я также без проблем протестировал его при развертывании на Heroku).
Мне нужно обслуживать его публично с помощью Nginx, поэтому я настроил новый виртуальный хост Nginx в качестве обратного прокси-сервера следующим образом:
вверх по течению my_api {
сервер 127.0.0.1:8002;
}
сервер {
имя_сервера пример.com;
место расположения / {
# Переход к сервису веб-сервера Uvicorn/Gunicorn
прокси_пасс http://my_api;
proxy_set_header Хост $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $ схема;
}
}
error_log /home/www/mydomain.log информация;
В браузере я получаю ошибку 400 Bad Request, независимо от того, включен ли он. http://example.com/videos/
или даже на http://example.com/
или же http://example.com/что угодно
.
Когда я провожу /home/www/example.log
Файл журнала виртуального хоста Nginx, я не получаю никакой соответствующей информации или журналов от других виртуальных хостов, например:
09.07.2021 12:05:49 [информация] 24698#24698: *233765 клиент 55.36.148.206 закрыто соединение с поддержкой активности
09.07.2021 12:06:12 [информация] 24698#24698: *233772 клиент 217.244.66.202 закрыто соединение проверки активности
09.07.2021 12:06:13 [информация] 24698#24698: *233775 клиент закрыл соединение в ожидании запроса, клиент: 63.210.40.102, сервер: 0.0.0.0:80
(Примечание: уникальная конечная точка работает для /ролики/
маршрут, но не для /ролики
маршрут - это будет исправлено позже, но в любом случае это не должно мешать вопросу.)
Любая идея, как отлаживать/понимать, откуда эта ошибка 400?