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

Node.js и Apache на одном сервере, но разные URL

У меня есть сервер за корпоративным брандмауэром с открытым только портом 80. Есть ли способ запустить Apache и Node.js отдельно в одном домене, но с разными URL-адресами? Например, могу ли я запустить Apache на mydamain.com и узел на mydomain.com/vcard?

Ты можешь. У вас есть 3 возможных варианта:

  • узел прослушивает порт 80 и перенаправляет определенные запросы на Apache, прослушивающий порт 8000
  • Apache прослушивает порт 80 и перенаправляет определенные запросы узлу, прослушивающему порт 8000.
  • Отдельный обратный прокси-сервер (Nginx, HAProxy или другой) перенаправляет запросы либо на Apache, прослушивающий порт 8001, либо на узел, прослушивающий порт 8002.

Учитывая, что Apache - ваш корпоративный сервер, второй способ наиболее безопасен. Прочтите документацию по Модуль Apache mod_proxy о том, как это сделать. У вас может быть отдельная «папка» для узла (например, все запросы к http://yourcompany.com/node/blabla обслуживаются узлом, в то время как все остальные запросы обслуживаются Apache, или у вас может быть отдельный виртуальный хост для Node.