Как разместить приложение 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 используйте ссылку для настройки. Вкратце шаги приведены ниже:
- Перейдите в консоль EC2 Console .
- Нажмите на Целевые группы в разделе Балансировщики нагрузки .
- Нажмите создать целевую группу и выберите параметры
- Тип цели - Instance
- Протокол цели - HTTP
- Порт цели - 3000
- Нажмите далее, а затем выберите EC2 для добавления в эту целевую группу .
- Перейдите в ACM для вашего региона и запросите сертификат, покрывающий ваш домен ссылка
- Приступайте к созданию балансировщика нагрузки, как указано в ссылка. Для слушателей используйте HTTP:80 и HTTPS:443 с созданным вами сертификатом .