Эти два вебсервера могут с легкостью уживаться на одном сервере.
Несколько фактов об Apache
- Apache занимает 80-ый (http порт)
- Apache отвечает на полученные запросы, если не удается подобрать соответствующий virtual host, первым хостом из списка, который считается хостом по умолчанию
Таким образом, если не уточнять порт в адресе запроса, то единственный известный мне вариант подружить два вебсервера — это использовать mod_proxy Apache
Вариант не идеальный, так как убивает всю прелесть асинхронного сервера Node.js синхронным апачем сверху, но пойдет для тестировочной среды.
Итак, вам следует предпринять следующие шаги:
- убедиться, что в настроках Apache раскомментирован mod_proxy
- в vhosts.conf добавить новую запись примерно такого вида:
<VirtualHost *:80>
ServerAdmin test@mynodejsserver.ru
ServerName mynodejsserver.ru
ServerAlias www.mynodejsserver.ru
ProxyPass /forum http://forum.citadeli.ru
ProxyPassReverse /forum http://forum.citadeli.ru
ProxyPass / http://localhost:1337/
ProxyPassReverse / http://localhost:1337/
</VirtualHost>
Директивы ProxyPass и ProxyPassReverse превращают виртуальный хост в reverse-прокси, перенаправляющий все запросы на целевой хост и подменяющий необходимые ответа
Не забудьте поменять помимо порта и адреса node.js сервера, порт и адрес виртуального хоста!