2017-01-21 1 views
0

На старом веб-сайте запускается программное обеспечение для форумов, которое имеет глубоко встроенные URL-адреса, благодаря которым он считает, что это www.domain.com - и его конфиг возвращает абсолютные URL-адреса ссылок. Нам нужно запустить новый сервер, чтобы взять на себя всю оставшуюся часть сайта www.domain.com и прокси-сервер через старый форум, поэтому существующие URL-адреса поддерживаются для SEO и закладок.Как прокси-часть старого веб-сайта через новую версию Apache 2.4, где старый веб-сайт должен работать на www.domain.com/оставаться вживую во время разработки?

Фактически, мы запускаем новый сервер в тестовом режиме (с приватными файлами/etc/hosts или с использованием прокси-сервера для разработчиков), поэтому «старый» сайт должен оставаться как www.domain.com на некоторое время дольше для публики, но для нас проксирование через новый сайт, как это будет, когда он будет жить.

Одна небольшая помощь на старом сервере. Директива apache «ServerAlias ​​old.domain.com» возвращает правильную страницу из механизма форума, когда этот домен используется в запросах, но с 302 найденным заголовком с положением: http://www.domain.com/forum для каждого ответа , (Это было бы характерно для любого веб-сайта с ServerName www.domain.com ServerAlias ​​old.domain.com в апача, я думаю.)

Кроме того, кажется, mod_rewrite не путь производительности мудры, как мы есть 500-1000 пользователей в режиме реального времени на форуме, поэтому мы пытаемся избежать этого.

(Этот вопрос отличается от всех других вопросов, связанных с перенаправлением, которые я исследовал весь день. Никаких других вопросов не обсуждать, сохраняя старый сервер с помощью www.domain.com, но не имея DNS-точки на нем. В этой ситуации требуется старое программное обеспечение сервера и форума держать www.domain.com в его конфигурации)

ответ

0

провел так много времени на это, отвечая на мой собственный вопрос здесь, чтобы позволить другим пользоваться:

абсолютные URLs по ссылкам в порядке - www.domain.. com - это хорошо, поскольку это указывает на новый сервер, который будет проксировать любой запрос на www.domain.com/forum/, конечно. Поэтому нам не нужно беспокоиться о переписывании этих URL-адресов в заголовке или в теге html. (И мы не можем просто разоблачить old.domain.com поисковым системам или пользователям, так как это повлияет на оценку SEO и будет помечено как дублирующее содержимое для разных URL-адресов).

Использование:

ProxyPass /forum/ http://old.domain.com/forum/ 

работает хорошо, и мы даже не нужно ProxyPassReverse как старый сервер не возвращает old.domain.com но www.domain.com нам.

Большая проблема была обнаружена в 302 году. Местоположение: www.domain.com/forum/ header - если мы не отменим это, браузер перезагрузит этот URL-адрес, снова ударит прокси-пасс и перезагрузится снова и снова, слишком много переадресаций ".

раздеться, что от нас использовать mod_headers директиву только для этого места:

<Location "/forum/"> 
    Header unset location 
</Location> 

, и это должно быть в конфигурации после директивы ProxyPass. (Несмотря на то, что говорят документы, директива Header будет работать внутри).

Для решения/форум без лидирующий слэш URL, мы ставим это перед ProxyPass:

Redirect "/forum" http://www.domain.com/forum/ 

Один вопрос остается в том, что некоторые куки или иным образом в настоящее время искажаются как-то и регистрационные данные игнорируются/отклоненным. Форум может сравнивать контент cookie с подключением IP, например, но это скорее функция работы форума, чем проблема с этим общим решением.