Nginx как разместить и react, и django
у меня есть react frontend, импортированный внутрь django backend. связь между ними осуществляется через django-rest-framework
. на стороне react, выборка осуществляется через относительные пути, поэтому в моем package.json
я добавил строку:
"proxy": "http://127.0.0.1:8000",
django размещает react-app локально без проблем, когда я запускаю: python3 manage.py runserver
.
на удаленном компьютере я пытаюсь использовать nginx
с gunicorn
для развертывания этого приложения на aws ubuntu instance и столкнулся с проблемой:
- сначала я запускаю
python3 manage.py collectstatic
.
- потом я указываю nginx на этот static_files для index.html
- успех! nginx обслуживает статические файлы react
- используйте
gunicorn myapp.wsgi -b 127.0.0.1:8000
для запуска django - проблема! nginx обслуживает файлы react не получает ничего. fetch не вызывает этот локальный путь, а вместо этого вызывает публичный ip экземпляра aws. также я не могу имитировать get/post запросы к бэкенду django, потому что я думаю, что nginx "покрывает" пути, сгенерированные gunicorn django. .
пожалуйста, скажите как я могу подключить nginx-served react frontedn к gunicorn под управлением django
my nginx sites-enabled/example
server {
listen 80 default_server;
listen [::]:80 default_server;
root /home/ubuntu/fandigger/frontend/build/;
server_name public_ip_without_port;
location / {
try_files $uri $uri/ =404;
}
}