
Допустим, у меня есть этот URL-адрес изображения:
www.domain.com/image.jpg
И я хочу, чтобы image.jpg на самом деле обслуживался с совершенно другого сервера (другой машины и IP),
static.domain.com/image.jpg
Можно ли настроить Apache таким образом, чтобы любые запросы к www.domain.com/image.jpg на самом деле полностью обслуживались static.domain.com/image.jpg, но для пользователя это выглядело бы так, как будто они поступают с www.domain.com/image.jpg?
решение1
Что бы вы ни делали, если вы попытаетесь обслуживать контент с нескольких серверов, используя один внешний адрес, вам придется каким-то образом передавать контент по TCP-соединению, которое было установлено с www.domain.com изначально, поскольку технически невозможно «передать» установленное TCP-соединение на другую машину.
Единственный вариант — использовать перенаправление, которое можно обнаружить. Но зачем беспокоиться, разве что, возможно, чтобы избежать разрыва входящих гиперссылок? С самого начала веб был задуман так, чтобы одна веб-страница содержала информацию с нескольких серверов.
Так что не усложняйте! :-) А если вы используете отдельное имя хоста для своих статических файлов, вы будете в хорошей компании.
решение2
Этотмощьвозможно, если у вас есть контроль над коммутатором, на котором находятся ваши серверы. Вам нужно будет использоватьПрямой возврат сервера. Однако это довольно сложная настройка, и, вероятно, она не имеет особого смысла, если у вас нет большого количества машин.
Гораздо лучшее решение — просто обслуживать контент напрямую из static.domain.com. Даже если вам придется заплатить за дополнительный SSL-сертификат, это выйдет намного дешевле с точки зрения времени, которое вы на него потратите. Если это не ваш вариант, сообщите нампочему.