使用SSL和url编码的反向代理,路径更改

时间:2014-05-13 19:43:29

标签: apache mod-proxy proxypass mod-proxy-html

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

我有两个申请。一个是在AWS上托管的电子商务站点(运行在LAMP上的Drupal 7),另一个是IIS-6上的ASP的结账系统,位于我们公司内部,需要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没有出现看到编码的params(它是一个专门的应用程序,我不知道如何查看IIS正在接收)。当我通过没有编码参数的方式路由domain2测试门户网站登录到server-1上的apache时,登录工作正常。

实际上我正在尝试

  1. 反向代理
  2. 更改路径(将应用程序运行在domain-2中/上,并在Domain-1上公开到子目录“/ shop”
  3. 支持SSL
  4. 代理Apache背后的IIS服务器
  5. 尝试不修改IIS服务器,以便它可以继续使用它的原始domain-2.com网址,并
  6. 在我可能具有有限的Apache配置控制的托管服务器上执行此操作。 (目前在XAMPP上进行测试)。
  7. 除了这里显示的内容之外,我已经尝试了各种各样的东西,包括重写,重定向等。我只是在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 个答案:

没有答案