环境 http://etrafficcontrol.com/misc/proxy.png
我有两个应用程序。一个是托管在 AWS 上的电子商务站点(在 LAMP 上运行的 Drupal 7),另一个是 IIS-6 上的 ASP 结帐系统,位于我们公司内部,需要 SSL。
目前,我们忍受了我们的客户被转发到另一个域进行结账的情况——有点像 ebay 和 PayPal 发生的情况。但这会导致网站跟踪代码出现困难,并且让购物者离开电子商务网站进行结账时感觉有些不对劲。
主要问题是我们使用 Google 广告系列,因此我们希望跟踪从广告到 domain-1 的转化以及在 domain-1 上的丰富内容,但实际销售发生在 domain-2 结帐时。
我没有将访问者从 www.domain1.com/cart 发送到 domain2.com/miscX,而是尝试设置 ProxyPass 和 ProxyPassReverse,以便将它们发送到 www.domain1.com/shop/miscX。
App1 (drupal) 在 domain1.com/* 中,.htaccess 的东西绕过 Drupal 的设计来拦截一切。“杂项”路径来自我重定向到子目录,然后从那里代理的事实。当代理页面呈现时,它们有一些到 /miscX 的硬编码路径,并且在重定向期间没有为这些路径做出特殊规定,我最终得到 /miscX/(而不是 /shop/miscX/ 它将遵循代理)和这会导致缺少 css、js 等。
注意:我们的企业客户可以直接登录 domain2.com,所以我想保持该门户不变。
下面,local-d7 是 domain1 服务器的本地测试实例。对代理的测试表明,这个概念适用于 SSL。
我几乎可以正常工作,但似乎 URL 编码的参数正在丢失(即使查询字符串没问题)。当我介绍代理时,server2 看不到编码参数(它是一个专门的应用程序,我不知道如何查看 IIS 正在接收的内容)。当我以没有编码参数的方式通过服务器 1 上的 apache 路由 domain2 测试门户登录时,登录有效。
实际上,我正在尝试
- 反向代理
- 更改路径(将应用程序运行在 domain-2 上的 / 中,并暴露到 Domain-1 上的子目录“/shop”中
- 支持 SSL
- 代理 Apache 后面的 IIS 服务器
- 尽量不要修改 IIS 服务器,以便它可以继续被原来的 domain-2.com URL 使用,并且
- 在我 [可能] 对 Apache 的配置控制有限的托管服务器上执行此操作。(目前在 XAMPP 上测试)。
除了这里显示的内容之外,我还尝试了各种事情,包括重写规则、重定向等。我只是在 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