Сбой экземпляра AWS Elastic Beanstalk после развертывания приложения Next.jsApache

Ответить Пред. темаСлед. тема
Anonymous
 Сбой экземпляра AWS Elastic Beanstalk после развертывания приложения Next.js

Сообщение Anonymous »

Я запускаю приложение Next.js в среде AWS Elastic Beanstalk с использованием Apache и Node.js 22 в 64-разрядной версии Amazon Linux 2023. В большинстве случаев после запуска eb Deploy экземпляр выходит из строя. >
Проблема
После развертывания состояние среды Elastic Beanstalk переходит с уровня «Информация» на «Серьезное» со следующим сообщением в консоли AWS:

Код: Выделить всё

Environment health has transitioned from Info to Severe.
ELB processes are not healthy on all instances.
Application update in progress on 1 instance. 0 out of 1 instance completed (running for 5 minutes).
None of the instances are sending data.
ELB health is failing or not available for all instances.
Когда это происходит (не при каждом развертывании, но в большинстве случаев), экземпляр становится непригодным для использования:
  • Я могу Не подключаюсь к экземпляру через SSH.
  • Журналы невозможно получить из консоли AWS.
  • Мой единственный вариант — завершить работу экземпляра и дать Elastic Beanstalk создайте новый.
Контекст
  • Поведение, зависящее от приложения
  • Приложение проверяет заголовок Host для динамического определения конфигурации.
  • Приложение использует пользовательские конфигурации для развертывания и проксирования.
  • Пользовательский Сценарий развертывания Я добавил файл .ebextensions/build.config, чтобы обеспечить правильную сборку и запуск приложения во время развертывания:

Код: Выделить всё

container_commands:
01_install_dependencies:
command: "npm install"
cwd: "/var/app/staging"
02_build_application:
command: "npm run build"
cwd: "/var/app/staging"
03_copy_build_to_current:
command: "cp -R .next /var/app/current/.next"
cwd: "/var/app/staging"
Это было введено для решения предыдущих проблем, когда приложение не запускалось должным образом после развертывания.
  • Конфигурация прокси-сервера У меня есть следующая конфигурация в .ebextensions/httpd-proxy.config для управления перенаправлением домена, SSL и серверным проксированием:

Код: Выделить всё

files:
"/etc/httpd/conf.d/proxy.conf":
mode: "000644"
owner: root
group: root
content: |

ProxyPreserveHost On
ServerName myServerName
ServerAlias \
"*.myUrls" \
ProxyTimeout 60
ProxyPass / http://127.0.0.1:8080/ connectiontimeout=10 timeout=180
ProxyPassReverse / http://127.0.0.1:8080/
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/access.log combined
LogLevel warn

SetHandler proxy:fcgi://127.0.0.1:8080


Предпринятые действия по устранению неполадок
  • Проверенные журналы:
  • При сбое экземпляра журналы невозможно получить ни через консоль AWS, ни через SSH.
  • Я подозреваю, что в этом проблема. может быть связано с:
  • истечением времени ожидания или сбоями проверки работоспособности. во время процесса развертывания.
  • Конфигурация не соответствует настройке ProxyPass или сценарию .ebextensions.
  • Пользовательская конфигурация:
  • Я пробовал настроить ProxyTimeout, ConnectionTimeout и Timeout. значения, но проблема остается.
  • Приложение отлично работает при локальной разработке и в промежуточных средах без Elastic Beanstalk.
Вопросы
  • Почему экземпляр полностью перестает отвечать на запросы (не может подключиться к SSH или получить журналы) после развертывания? Что-то не так с моими конфигурациями или сценариями развертывания?
  • Как я могу отладить сбои проверки работоспособности и повысить надежность развертывания?
  • Есть ли лучший способ обработки пользовательских конфигураций прокси и сценариев развертывания в приложениях Elastic Beanstalk для Next.js?
    Будем очень признательны за любые рекомендации! Заранее спасибо.
Изменить
Я удалил файл build.config. и добавил файл .platform/hooks/postdeploy/postdeploy.sh с

Код: Выделить всё

#!/bin/bash
npm install --production=false
Это сделало развертывание более стабильным, но впервые за неделю оно снова вышло из строя.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ext-js-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Параметр Django ALLOWED_HOSTS для экземпляра Elastic Beanstalk за Elastic Load Balancer
    Anonymous » » в форуме Python
    0 Ответы
    125 Просмотры
    Последнее сообщение Anonymous
  • Параметр Django ALLOWED_HOSTS для экземпляра Elastic Beanstalk за Elastic Load Balancer
    Anonymous » » в форуме Python
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous
  • AWS Elastic Beanstalk: задание Cron не собирает переменные среды
    Anonymous » » в форуме Python
    0 Ответы
    95 Просмотры
    Последнее сообщение Anonymous
  • AWS Elastic Beanstalk сгенерировал домен с http на https [закрыто]
    Гость » » в форуме Apache
    0 Ответы
    106 Просмотры
    Последнее сообщение Гость
  • Как настроить работу laravel cron на aws elastic beanstalk
    Anonymous » » в форуме Php
    0 Ответы
    80 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Apache»