2013-05-14 5 views
11

У меня есть несколько небольших производственных площадок и куча веселых хобби/экспериментальных приложений и т. Д. Я бы хотел запустить все из них на одном экземпляре EC2.Как запустить несколько приложений на одном экземпляре EC2

Могу ли я установить node.js, npm, express и couchdb один раз, а затем запустить каждое приложение на другом порту и настроить параметры DNS в моем доменном реестре, чтобы указать на нужное место?

Обновление: Спасибо, Майк! Для тех, кто ищет несколько IP-адресов на EC2: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html

+0

Да, хотя DNS не указывает на порт - он указывает на IP-адрес. –

+0

Спасибо, Майк! Хм ... Итак, как бы я это сделал (принимал больше одного приложения на одном экземпляре EC2)? – Costa

+1

Несколько IP-адресов? Хост-заголовки? –

ответ

31

Существует несколько способов сделать это.

Различные порты

Вы можете запускать каждый процесс Node.js на другой порт и просто открыть порты в мире. Однако вашим URL-адресам потребуется порт в конце имени хоста для каждого проекта. yoururl.com:8080/ будет технически работать, но, вероятно, не то, что вы ищете.

Несколько IP адресов

Вы можете использовать несколько IP-адресов на одном экземпляре EC2, однако, они приходят с дополнительной стоимостью около $ 3,65 в месяц каждая. Поэтому, если у вас есть 10 разных доменов, которые вы хотите разместить на одном экземпляре, то это более 30 долларов в месяц в качестве платы за хостинг.

С другой стороны, любой домен, использующий SSL, нуждается в собственном IP-адресе.

Также есть limits to the number of IP addresses, который вы можете назначить экземпляру, и чем меньше экземпляр, тем меньше получаемых вами IP-адресов.

Количество IP-адресов, которые вы можете назначить, зависит от типа экземпляра. Небольшие экземпляры могут вмещать до 8 IP-адресов (через два эластичных сетевых интерфейса), в то время как High-Memory Quadruple Extra Large и Cluster Computer Восемь экземпляров Extra Large могут быть назначены до 240 IP-адресов (через 8 эластичных сетевых интерфейсов). Для получения дополнительной информации об ограничениях IP-адреса и эластичного сетевого интерфейса перейдите в «Семьи и типы экземпляров» в Руководстве пользователя Amazon EC2.

Экспресс ВХосты

Экспресс поставляется с функцией виртуального хоста. Вы можете запускать несколько доменов под одним сервером Node.js/Express и настраивать маршруты на основе имени домена. vhost под Экспресс позволяет это.

Reverse Proxy

Вы можете настроить Nginx перед несколькими серверами приложений. Это имеет большую гибкость. У вас может быть один процесс Node.js для каждого домена, который позволяет вам выполнять обновления и перезапускаться в одном домене за раз. Он также позволяет размещать серверы приложений, такие как Apache/PHP, под одним и тем же экземпляром EC2 вместе с процессом Node.js.

С Nginx, действующим как обратный прокси, вы также можете размещать разные серверы приложений в одном домене, но обслуживать разные пути.

Например, Node.js может служить основным корневым путем для домена, но вы можете установить путь /blog/, чтобы перейти к установке Apache/PHP/Wordpress в том же экземпляре EC2.

+1

Вы рок! Nginx звучит как лучшее место для следующего. Я очень мало знаю об этом, поэтому я буду использовать Google. Как насчет использования отдельных IP-адресов? – Costa

+2

Обновленный ответ о множественных IP-адресах. – Daniel

+0

Большое спасибо Даниэлю! Качественный товар! Мне нужны новые IP-адреса для чего-либо с SSL, это точно. Возможно, вскоре Amazon примет ipv6 и снизит стоимость новых IP-адресов. – Costa

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