Django + nginx пользовательский блок местоположения не работает
Я хочу развернуть django в качестве backend сервера с nginx.
Я использую daphne в качестве asgi сервера из-за канала django
location /api {
proxy_set_header Host $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 $scheme;
proxy_pass http://127.0.0.1:10131;
}
как вы видите, http://127.0.0.1:10131
- это django, который должен быть подключен к http://my_domain.com/api
но django не может распознать запрошенный uri.
конечно, я установил FORCE_SCRIPT_NAME
на /api
Что мне делать дальше?
помогите.
Сначала проверьте, запущена ли ваша daphne
служба на сервере или нет; затем попробуйте следующее
server {
listen 80; # can change to 10131
server_name http://my_domain.com;
location /api {
proxy_set_header Host $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 $scheme;
proxy_pass http://127.0.0.1:10131;
}
}
Вы можете изменить listen
порт, если хотите, чтобы ваш api был доступен к определенному порту, например. 10131
Если вы столкнулись с какими-либо проблемами, попробуйте проверить журналы daphne
следующим образом
sudo journalctl -u daphne
и чтобы проверить работает или нет ваш api, выполните эту команду
curl http://127.0.0.1:10131/api
вам может понадобиться установить curl запустите это, чтобы установить его
sudo apt install curl