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

Iptables и NAT сохраняют исходный IP-адрес назначения?

У меня есть веб-сервер, который я разделил на гостей, на одном из которых работает apache с довольно простой конфигурацией виртуального хоста. У меня работает перенаправление, но моей конфигурации виртуального хоста требуется исходный пункт назначения, чтобы определить, на какой набор страниц должен попасть запрос, поэтому я вижу только страницу сервера по умолчанию.

В настоящее время мое правило iptables выглядит так:

-A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.10.10.2:80

Есть указатели?

Проблема в том, что любой трафик http (s) к этому ящику направляется на набор страниц по умолчанию, а не на тот, который подходит для первоначально запрошенного домена.

Соответствующая часть из конфига виртуального хоста:

    #
    #  The document root + CGI-directories.
    #
    VirtualDocumentRoot     /srv/%0/public/htdocs/
    VirtualScriptAlias      /srv/%0/public/cgi-bin/

(да, эти пути существуют - я вытащил / srv / из окна apache, которое я заменяю, и сохранил владельцев / разрешения / и т. д.!)

С виртуальными хостами Apache не использует IP-адрес (если только не используются виртуальные хосты на основе IP, которые, как я предполагаю, вы не используете) сервера, чтобы определить, какой веб-сайт представить, поэтому проверка правил IPtables ничего не даст. Вместо этого Apache проверяет поле хоста в HTTP-запросе и использует его, чтобы решить, какой виртуальный хост представить. Скорее всего, здесь виновата ваша конфигурация Apache, а не IPtables.

Отредактируйте свой вопрос, включив в него блок конфигурации виртуального хоста.