Как разместить приложение react и django на ec2

У меня есть приложение React с Django для бэкенда и базой данных mysql. Я хочу разместить этот сайт на ec2. Я также приобрел домен. В настоящее время я запускаю сервер React и сервер Django на экземпляре ec2 и могу получить доступ к этому веб-сайту, используя эластичный IP-адрес, назначенный экземпляру, что-то вроде public-address:3000.

Я хочу иметь возможность связать домен с экземпляром ec2. Я настроил домен на привязку к экземпляру с помощью DNS, но проблема в том, что сервер react работает на локальном хосте экземпляра ec2, и когда я обращаюсь к домену, я не могу просмотреть веб-сайт.

Может ли кто-нибудь помочь мне с этим

У вас приложение работает на порту 3000, поэтому оно доступно для вас при использовании EIP:3000. То же самое будет работать и для домена, но вам придется указать порт как http://<domain-name>:3000. Хотя вы можете изменить конфигурацию приложения, чтобы оно работало на 80-м порту, рекомендуется иметь какого-нибудь "посредника", который будет выполнять эту работу за вас. Вы можете использовать обратный прокси-сервер NGINX на том же экземпляре, чтобы прослушивать порт 80 и затем перенаправлять его на порт 3000 для вашего приложения.

Если безопасность является вашим приоритетом (а так и должно быть), рекомендуется выставлять приложение через Application Load Balancer или через CloudFront (если ваши клиенты глобальные). В обоих этих вариантах вы можете получить бесплатный сертификат для вашего домена от AWS с помощью ACM (Certificate Manager).

Для ALB используйте ссылку для настройки. Вкратце шаги приведены ниже:

  1. Перейдите в консоль EC2 Console
  2. .
  3. Нажмите на Целевые группы в разделе Балансировщики нагрузки
  4. .
  5. Нажмите создать целевую группу и выберите параметры
    • Тип цели - Instance
    • Протокол цели - HTTP
    • Порт цели - 3000
  6. Нажмите далее, а затем выберите EC2 для добавления в эту целевую группу
  7. .
  8. Перейдите в ACM для вашего региона и запросите сертификат, покрывающий ваш домен ссылка
  9. Приступайте к созданию балансировщика нагрузки, как указано в ссылка. Для слушателей используйте HTTP:80 и HTTPS:443 с созданным вами сертификатом
  10. .
Вернуться на верх