Обратный прокси с SSL и кодировкой URL, изменение пути

http://etrafficcontrol.com/misc/proxy.png

У меня есть два приложения. Одним из них является сайт электронной коммерции (Drupal 7 работает на LAMP), размещенный на AWS, а другим - система контроля, которая является ASP на IIS-6, расположена внутри нашей компании и требует SSL.

В настоящее время мы миримся с ситуацией, когда наших клиентов перенаправляют на другой домен для оформления заказа - что-то вроде того, что происходит с ebay и PayPal. Но это приводит к трудностям с кодом отслеживания сайта, и покупателю кажется, что неправильно отправлять его с сайта электронной коммерции для проверки.

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

Вместо того, чтобы отправлять посетителей с www.domain1.com/cart на domain2.com/miscX, я попытался настроить ProxyPass и ProxyPassReverse, чтобы отправлять их на www.domain1.com/shop/miscX.

App1 (drupal) находится в domain1.com/*, а материал.htaccess обходит дизайн Drupal, чтобы перехватывать все. Пути "misc" происходят из-за того, что я перенаправляю в подкаталог, а затем оттуда проксую. Когда страницы прокси рендерится, у них есть несколько жестко закодированных путей к / miscX, и без специальных условий для них во время переориентации я получаю /miscX/ (вместо /shop/miscX/, который будет следовать за прокси) и что вызывает отсутствие CSS, JS и т. д.

Примечание. Наши бизнес-клиенты могут войти непосредственно на domain2.com, поэтому я бы хотел оставить этот портал без изменений.

Ниже local-d7 - это локальный тестовый экземпляр сервера domain1. Проверка прокси-сервера показывает, что эта концепция работает с SSL.

У меня это почти работает, но кажется, что параметры в кодировке URL теряются (даже если строки запроса в порядке). Когда я представляю прокси, server2 не отображается в виде закодированных параметров (это специализированное приложение, и я не знаю, как посмотреть, что получает IIS). Когда я маршрутизирую вход в тестовый портал domain2 через apache на сервере-1 таким образом, чтобы не иметь закодированных параметров, вход в систему работает.

По сути, я пытаюсь

  1. обратный прокси
  2. изменить путь (поместите приложение, работающее в / на домен-2, и откройте его в поддиректории "/ shop" на домене-1
  3. поддержка SSL
  4. прокси сервер IIS за Apache
  5. попытаться не изменять сервер IIS, чтобы он мог продолжать использоваться его исходным URL-адресом domain-2.com, и
  6. делайте это на хост-сервере, где у меня может быть ограниченный контроль конфигурации Apache. (в настоящее время тестирование на XAMPP).

Я перепробовал все виды вещей в дополнение к тому, что здесь показано, включая rewriterules, redirects и т. Д. У меня просто нет опыта работы с mod_proxy или mod_rewrite и т. Д. Но мне кажется, что такое расположение прокси должно быть выполнимо с некоторой работой и возможно исправлением серверных SSL-сертификатов.

Совет? --Спасибо

vhosts.conf

  ## Redirect /misc1/ https://local-d7/shop/misc1/
  ## Redirect /misc2/ https://local-d7/shop/misc2/
  ## Redirect /misc3/ https://local-d7/shop/misc3/

  ## ProxyRequests Off
  ## ProxyPreserveHost On
  ## RequestHeader set Proxy-SSL true
  ## ProxyPass /shop/ https://www.shop.com/
  ## ProxyPassReverse /shop/ https://www.shop.com/

  ProxyPass /shop/ https://www.domain2.com/
  ProxyPassReverse /shop/ https://www.domain2.com/
  ProxyPass /misc1/ https://www.domain2.com/misc1/
  ProxyPassReverse /misc1/ https://www.domain2.com/misc1/
  ProxyPass /misc2/ https://www.domain2.com/misc2/
  ProxyPassReverse /misc2/ https://www.domain2.com/misc2/
  ProxyPass /misc3/ https://www.domain2.com/misc3/
  ProxyPassReverse /misc3/ https://www.domain2.com/misc3/

.htaccess

RewriteCond %{REQUEST_URI} ^/misc1/
RewriteCond %{REQUEST_URI} ^/misc2/
RewriteCond %{REQUEST_URI} ^/misc3/
RewriteRule (.*) /shop/$1

0 ответов

Другие вопросы по тегам