2012-06-11 2 views
3

Я начинаю работать с node.js, чтобы создать легкую платформу REST с высоким спросом для создания некоторых собственных приложений. Одна из проблем связана с моей средой разработки и совместными действиями Apache и node.js. Ни один вопрос в том, чтобы их сотрудничество не существует, так как есть много сообщений о том, как «доля» порт 80 через имеющий Apache перенаправлять запросы к узлу:Перенаправление Apache/Server X на производительность node.js

http://arguments.callee.info/2010/04/20/running-apache-and-node-js-together/ http://www.readwriteweb.com/hack/2010/12/how-to-run-apache-and-nodejs.php

И узел проксирования для Apache:

https://github.com/nodejitsu/node-http-proxy

Один вопрос, который, кажется, идет желая, однако, относится к производительности «хит», когда проксирование, в частности, при использовании Apache для прокси-узла. Хотя моя производственная среда будет чистым решением node.js, прослушивающим порт 80, теоретически не было бы того, чтобы Apache не работал и обрабатывал начальный ввод-вывод, в значительной степени нарушал большинство преимуществ производительности использования node.js, начиная с I/O перспектива? Если в этом поле появятся тысячи запросов, длительный опрос и т. Д., Перенаправления Apache не будут порождать много потоков, которые затем передаются однопоточному узлу.js?

Как я уже сказал, новичок в узле, поэтому просто пытаюсь разобраться с этой проблемой.

ответ

0

У вас есть основная идея.

Наличие Apache, обрабатывающего запросы, сначала делает его частью цепи, и если это самое слабое звено в цепочке, это может замедлить ваше приложение.

В стандартной конфигурации Apache не работает медленно, если количество одновременных запросов невелико, но чем больше запросов обрабатывается, тем больше RAM используется Apache. Если вы используете некоторые постоянные соединения, вы можете легко попасть туда.

У Apache есть разные MPM (многопроцессорные модули). По умолчанию используется mpm_prefork, который, как известно, является голодным (по одному потоку на соединение).
Вы можете переключиться на: mpm_worker, который использует подобную модель node.js, чтобы обрабатывать соединения, больше подходит для задач, которые вы пытаетесь заархивировать. (связанная с подключением связь, но у нее есть некоторые причуды с другими модулями [например, mod_php], чтобы больше не быть потокобезопасными.)

Как всегда лучшим решением было бы: попробовать разные вещи, сделать несколько тестов и взять то, что работает лучше всего для тебя.

+0

Благодарим вас за отзыв! –

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