2016-11-08 3 views
4

Возможно ли иметь экземпляр EC2, прослушивающий port 443, без load balancer? Я пытаюсь прямо сейчас в моем приложении Node.JS, но он не работает, когда я вызываю страницу с помощью https://. Однако, если я установил его на port 80, все будет хорошо с http://.AWS SSL на примере EC2 без балансировки нагрузки - NodeJS

У меня было это раньше с load balancer и route53, но я больше не хочу платить $ 18/mo за ELB, особенно когда у меня только один сервер работает.

Спасибо за помощь

ответ

3

Вы правы, если это только один экземпляр, и вы чувствуете, что вам не нужно быть готовым к большому увеличению трафика, вам не нужно платить за ELB.

С точки зрения высокого уровня вам придется пройти следующие шаги:

  1. Установка сервера Nginx для обслуживания приложения NodeJS.
  2. Установите свои сертификаты SSL на сервере nginx.

    - Либо сделайте это вручную, ssh'ing на сервер и установив сертификаты, как описано here.

    - ИЛИ включать необходимые файлы в ваше приложение (я считаю, что это работает только для эластичного бобового стека?), Который автоматически перезапишет файлы конфигурации nginx, как описано here.

  3. Убедитесь, что Nginx прослушивает порт 443 (должен был завершен в предыдущем шаге)
  4. Открытая группа безопасности ЕС2 сервера, соответствующий где вы хотите трафика для входа на сервер (порт 80/порт 443)
0

В наших проектах мы используем:

  • nginx в качестве балансировки нагрузки, прокси и кэш для статических файлов
  • pm2 как менеджер процессов для Node.js
  • node.js v6.9.1 как долгосрочная версия поддержки
  • MongoDB как база данных
  • redis в очереди и кэш

Этот материал работает на t2.medium экземпляре.

Что вы думаете о nginx в своем проекте?

2

Возможно ли это? Да, конечно. Похоже, что у вас установлен сертификат SSL на ELB, и теперь вы удалили ELB. Теперь вам нужно будет установить SSL-сертификат на сервере EC2. Вы не можете использовать сертификаты AWS ACM SSL без распространения ELB или CloudFront. Если вы не хотите платить за какие-либо из этих услуг, вам придется получить сертификат SSL в другом месте.

+0

У меня есть сертификат SSL от Namecheap, и он загружается в IAM. Когда я установил ELB, я бы просто решил использовать существующий сертификат SSL из IAM. Как я могу установить его на свой EC2? Нужно ли мне SSH в этом или что-то еще? @MarkB – Thomas

+0

Да, вам нужно будет SSH на сервер и вручную установить сертификат. Вы не сможете использовать IAM для управления сертификатом в этом сценарии. –

0

для наших проектов (так же, как описано другой плакат) мы использовали эту установку:

  1. Nginx в качестве балансировки нагрузки и прокси-сервер для всех вызовов на порт 80 (без прямого вызова Node.js серверу на порт 3000, который закрыт для публики)
  2. PM2 как менеджер процесса для Node.js (и для развертывания)
  3. keymetrics.io для мониторинга
  4. Nodejs v6.9.3 бора/ЛЦ (через NVM)
  5. MongoDB 3.2 с WiredTiger Engine (Compose.io)
  6. экземпляров Amazon EC2 для хостинга (Amazon Linux не Ubuntu)

Эта установка работает очень хорошо для нас. И в этой настройке мы можем настроить SSL без использования балансировщиков амазонок.

Смежные вопросы