Как обслуживать React Frontend и Django Backend на IIS?

Фон

У нас есть приложение, использующее React.js для фронтенда и Django для бэкенда. Мы пытаемся развернуть это приложение на виртуальной машине Azure с IIS.

Встреченные проблемы

  1. Доступность бэкенда:

    • Мы не уверены, запущен ли наш сервер Django и как получить к нему доступ. Доступ к localhost обслуживает только фронтенд, что вызывает опасения по поводу связи между фронтендом и бэкендом.
  2. 404 Ошибка при обновлении страницы:

    • При переходе на authentication/sign-in с фронтенда все работает нормально. Однако при обновлении этой страницы возникает HTTP Error 404.0 - Not Found ошибка.
    • Похоже, IIS ищет физический путь, которого не существует, поскольку папка сборки содержит только статические файлы (CSS, JS и т. д.).

    Error Image

Предпринятые шаги

  1. Создали новый экземпляр на Azure: Установили Python и другие необходимые пакеты.
  2. Настроил IIS:
    • Включил функции IIS и другие необходимые функции.
    • Установите SSL-сертификат (.pfx) с помощью MMC для включения поддержки HTTPS.
    • Переместил папку проекта в C:\inetpub\wwwroot.
    • Настроил путь к Python и путь к FastCGI в файле web.config, расположенном рядом с папкой проекта.
  3. Установите виртуальный каталог:
    • Переместите папку сборки (статическая сборка из React) в виртуальную директорию.
    • Завершили все настройки для маппинга, FastCGI и обработки статических файлов.
  4. Запуск приложения:
    • Фронтенд успешно обслуживается при доступе через localhost.

Resources Referenced

Просьба о помощи

  • Как подтвердить, что бэкенд Django запущен, и определить правильный URL для доступа к нему?
  • Как настроить IIS для корректной работы с маршрутами фронтенда (например, authentication/sign-in), не приводя к 404 ошибке при обновлении? (оба вопроса связаны - это не разные вопросы)

Любые соображения или решения будут высоко оценены. Спасибо!

Вернуться на верх