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
Вернуться на верх