Назад | Перейти на главную страницу

Приложения Node.js и wordpress на одном vps

Итак, в настоящее время мой линод (ubuntu 11.10) обслуживает для меня три приложения node.js, используя промежуточное программное обеспечение connect vhost, которое прослушивает порт 80. Вот пример того, как vhost настраивает домен:

var portfolio = require('./bootstrap-portfolio/lib/app.js');

var server = express();

server.use(express.vhost('sencedev.com',portfolio));
server.use(express.vhost('www.sencedev.com',portfolio));

server.listen(80);

Однако теперь я хотел бы добавить установку wordpress и к своему vps. В прошлом для меня это означало традиционную установку apache; однако я немного не уверен, как должен взаимодействовать node.js + другой веб-сервер (apache или nginx).

Есть какие-нибудь мысли о том, как мне подойти к размещению wordpress + node.js в одном окне?

Я не уверен в каких-либо других решениях этой проблемы, но вы можете попробовать настроить обратный прокси-сервер. Вы можете сделать то же самое в Nginx, но в примере используется Apache.

Если вы устанавливаете Apache (например) и настраиваете его для прослушивания порта 80, вы также можете настроить Apache mod_proxy для пересылки запросов в ваши приложения Node.js. Это известно как обратный прокси. Но поскольку в этом случае Apache будет привязан к порту 80, вам нужно будет выбрать другой номер порта для привязки вашего приложения.

Для каждого из ваших приложений Node.js вам необходимо настроить виртуальный хост с ProxyPass запись (см. http://httpd.apache.org/docs/2.2/mod/mod_proxy.html).

<VirtualHost *:80>
  ServerName example.com
  ProxyPass / http://localhost:8080/
</VirtualHost>

Теперь, когда Apache получает запрос, соответствующий этому VHost, он направляет его промежуточному программному обеспечению Node.js, которое, в свою очередь, обслуживает запрос и отправляет его обратно в Apache.

Конечно, если вас не очень беспокоит, что все подключается к порту по умолчанию (80), вы можете просто запустить их бок о бок и убедиться, что вы указали номер порта при доступе к серверу на любом другом порту.