Подтвердить что ты не робот

Node.js как контейнер приложения

Apache и Node.js имеют что-то общее. Чем больше я использую Node.js, тем больше мне нравится Node.js; аналогично, больше я использую Apache, тем больше мне нравится Node.js.

Одна хорошая вещь об Apache, хотя, он может делать много вещей через один и тот же порт. PHP, Python, Perl, различные приложения, разные пути, вся magilla. Node.js этого не делает, и это не предполагается, но я хотел бы сделать что-то подобное.

Я хотел бы предоставить ему список префиксов URL (или в идеале regexps) и достаточную информацию, если он получает запрос, соответствующий конкретному префиксу, он передает запрос подчиненному экземпляру с указанным script (и он запустит такой экземпляр, если он этого еще не сделал, и закройте его, когда это делает разумным). В принципе, я хочу сотрудничать nodejs-proxy и cluster. С его помощью я мог запускать несколько приложений вместе на одной машине через порт 80.

Это кажется довольно простым и очень полезным, и я собирался просто написать его сам, когда мне пришло в голову: "Это кажется довольно простым и очень полезным - возможно, кто-то уже написал это!" Любые предложения?

4b9b3361

Ответ 1

Node.js не имеет встроенной возможности маршрутизации запросов к различным приложениям, но такие структуры, как это, находятся в разработке.

Nodejitsus Haibu приходит в голову - он управляет дочерними процессами для каждого приложения и использует node-http-proxy для маршрутизации запросов.

Ответ 2

Вы можете взглянуть на http://expressjs.com, который я описываю как "синатра для node". Он дает всю маршрутизацию на основе URL/шаблонов. Вы можете связать это с https://github.com/visionmedia/express-resource, чтобы создать привлекательный подход к ресурсам стиля RESTful.

Ответ 3

Мне кажется, что вы ищете HTTP-прокси на основе событий (для замены Apache) - в этом отношении nginx кажется, нынешний царь холма.

Ответ 4

Используйте dokku (Docker на основе), который будет создавать ваши приложения и предоставлять обратный прокси через nginx. Контейнеры изолированы, у вас есть выбор buildpacks, и ваши развертывания имеют 0 простых простоя, нажимая repos через git и auth через ssh.

Вы можете следовать этому легкому руководству на DigitalOcean о том, как развернуть ваши приложения Node.js или просто смотреть руководство от самого человека.