Django просматривает URL после развертывания с помощью Gunicorn
У меня есть Django backend и React frontend, которые прекрасно работали до развертывания. Я запустил:
nohup python manage.py runserver my_server_ip:8000 &
В этом случае представление может быть вызвано React с помощью:
my_server_ip:8000/app1/view1
После этого я развернул Django с Gunicorn и React с Nginx,
Nginx config:
server {
listen 80;
root /path_to_react_build_folder;
server_name my_server_ip;
index index.html;
location = /favicon.ico { access_log off; log_not_found off;}
location / {
proxy_set_header Host $http_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;
}
}
Gunicorn.socket
[Unit]
Description=gunicorn socket
[Socket]
ListenStream=/run/gunicorn.sock
[Install]
WantedBy=sockets.target
Gunicorn.service
[Unit]
Description=gunicorn daemon
Requires=gunicorn.socket
After=network.target
[Service]
User=my_username
Group=www-data
WorkingDirectory=/home/my_username/django_project_root
ExecStart=/home/my_username/python_virtualenv/bin/gunicorn --access-logfile - --workers 3 --bind unix:/run/gunicorn.sock django_project_root.wsgi:application
[Install]
WantedBy=multi-user.target
Соединение было в порядке, когда я набирал my_server_ip
в браузере (т.е. по умолчанию index.html
, установленное в конфигурации Nginx). Все статические вещи, такие как цвет фона и баннер, отображались нормально, но я не мог получить результат от вызова API. Консоль браузера показывала:
GET http://my_server_ip:8000/app1/view1 net::ERR_EMPTY_RESPONSE
Как я могу позволить React получить доступ к представлению Django в этом случае?