2012-05-15 2 views
0

У меня есть куча доменов, указывающих на один IP-адрес (у меня такое чувство, что это будет главное, чтобы остановить это от работы), и один из них я хотел бы указать на сервер node.js на порт 80 вместо того, чтобы чтобы обойтись с прокси в Apache.Я хочу, чтобы Apache только прослушивал порт 80 по указанным адресам. Могу я?

Я уже удалил virtualhost для *: 80 в apache (он предупреждает меня об этом каждый раз, когда я его перезапускаю).

Когда я прошу узел прослушивать domain.one:80 хотя (просто пример, а не то, что я действительно использую), это не сработает - он говорит мне, что адрес используется, даже если нет VirtualHost для домена.one:80.

Я подозреваю, что это связано с тем, что domain.one и domain.two оба указывают на один и тот же IP-адрес, верно? Если нет, что я могу сделать? Спасибо :)

ответ

0

Да. Вы можете указать имя сервера в vhost. Тогда вы можете указать только IP или * в теге. Создайте *: 80 Vhost и добавьте

<VirtualHost *:80> 

    ServerName domain.one 
    DocumentRoot /blah/blah 
    .... 
</VirtualHost> 

к нему. Это будет фильтроваться по доменному имени.

+0

Я боюсь, что, как я подозревал, и как сказал RatDaddy, поскольку все домены указывают на один и тот же IP-адрес, это не решит проблему, но спасибо :) – basicallydan

2

Порты напрямую привязаны к IP-адресу. Каждый IP-адрес может обрабатывать только один процесс для данного порта. Поскольку ваши доменные имена разрешены на один и тот же IP-адрес, у вас не может быть отдельного процесса узла для каждого из них, прослушивающего порт 80.

Если вы хотите сохранить эту схему, вам необходимо, чтобы каждый сервер узла прослушивал другой порт и настроить обратные прокси в Apache, как описано here. Вы также можете использовать nginx, так как он также имеет эту возможность (настроен несколько иначе).

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