У меня есть приложение node js, развернутое на AWS, с использованием Elastic Beanstalk с одним экземпляром. Он хорошо работает с HTTP, но у меня возникли проблемы с настройкой доступа HTTPS.
Я создал свой сертификат и выполнил инструкции из документа AWS EB: http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-singleinstance-nodejs.html
Вот описание моей проблемы после развертывания нового кода:
Я все еще могу подключиться к URL-адресу в браузере с помощью HTTP, однако при попытке подключения с помощью HTTPS я получаю сообщение ERR_CONNECTION_REFUSED
Я использовал netcat, чтобы проверить, доступен ли порт 443, а это не так:
nc -z environment.elasticbeanstalk.com 80
возвращает:
Connection to environment.elasticbeanstalk.com port 80 [tcp/http] succeeded!
но
nc -z environment.elasticbeanstalk.com 443
ничего не возвращает
Я также проверил входящее правило для группы безопасности, связанной с экземпляром EC2, и у него действительно открыт порт 443:
И, наконец, я проверил журналы эластичного beanstalk и не нашел никакой ссылки на запрос HTTPS. Если я ищу временные метки примерно в то время, когда я пытаюсь получить доступ к этому приложению с помощью HTTPS, их нет. Похоже, что сервер nginx никогда не получал запрос.
У меня не было проблем с настройкой аналогичного доступа HTTPS, когда я использовал Elatstic Beanstalk с сервером php / apache, но в этом случае я новичок в node / nginx, поэтому я могу пропустить что-то базовое.
У вас есть предложения, что я могу проверить или что я могу сделать?
Заранее большое спасибо,
Эрез
Хорошо, я обнаружил проблему: в конфигурации эластичного бобового стебля прокси не был настроен.
Я обновил конфигурацию EB, включив прокси nginx, и это сработало.
Configuration > Software Configuration > Container Options > Proxy server: nginx