Имеет ли смысл перенаправлять запросы от Apache VirtualHost к экземпляру Node.js с точки зрения производительности? Уравновешивает ли проксирование отличной производительности Node.js?
К вашему сведению: Мне также нужно, чтобы несколько веб-приложений PHP анализировались и запускались на одном компьютере, это единственная причина, по которой я даже подумываю об использовании обратного прокси.
Согласно моим исследованиям, Nginx имеет меньше накладных расходов и поэтому работает немного лучше, но, к сожалению, не поддерживает HTTP / 1.1.
Я также думал о том, чтобы Node.js служил обратным прокси-сервером и отправлял определенные запросы в Apache (который затем, например, обрабатывает файлы PHP), но я слышал, что может быть много проблем с безопасностью.
Вы не должны использовать Apache
доверять node.js
. Часть node
Скорость достигается за счет обработки ввода-вывода собственного сокета с минимальными накладными расходами: это было бы сведено на нет проксированием с любым другим сервером.
Вместо этого вы можете отправлять запросы к Apache
из node
используя отличный node-http-proxy
из nodejitsu
- второй пример «Настройка автономного прокси-сервера с настраиваемой логикой сервера» подходит для вашего варианта использования.
редактировать: Я действительно создал PHP
/node
установить на днях, используя nginx
и php-fpm
, есть полные инструкции Вот. Вы также можете запустить обратный прокси из nginx
и разрешить node
для одновременной обработки собственных подключений.
Я бы предположил, что настройка Apache для обратного прокси для Node.js противоречит намерениям Node.js. Узел очень легкий - накладные расходы минимальны. Запуск процесса apache для обработки потока Node.js сводит на нет смысл использования Node.js (по сути, вы будете ограничены производительностью Apache).
Иногда узел не считается достаточно стабильным для работы без мониторинга и не может быть идеальным интерфейсом. Я мог бы предложить разместить либо Squid, либо HAproxy перед Node и Apache, разрешить любому из них выступать в качестве вашего прокси и запускать Node и Apache на разных портах (например, 8080, 8081). И Squid, и HAProxy обладают хорошей производительностью и должны соответствовать вашим потребностям, не отвлекая ни один из внутренних серверов.