如何通过IIS访问Plone站点

时间:2014-05-21 01:39:23

标签: iis plone reverse-proxy

最近花了一些时间来解决这个问题,我想我会分享它以防其他人发现它有用。

这是设置,你在Windows环境中设置了Plone站点(我已经使用过3.3,4.0和4.3)(在我的案例中是windows server 2008r2)。 您希望此网站与您的用户期望的网址一起显示。 例如http://mysiteisthis.com 因此,访问mysiteisthis.com/aPage的人将被定向到正确的页面并仍然可以看到正确的URL。

对于Apache来说,这是一个非常好的文档,但对于IIS来说并没有真正记录。我不能说这是因为大多数Plone网站的管理员决定采用linux和apache路径,或者只是觉得太容易了。无论如何,我将在下面描述我的解决方案

1 个答案:

答案 0 :(得分:1)

一个选项是enfold proxy,这可能是最先提出的事情之一。我当时没有意识到有免费版本,否则我可能会先调查一下;现在你仍然可以从我的经历中受益。

因此,如果您不想使用enfold,则还有其他选项。 基本上你要做的就是建立一个反向代理。

如果你走到这一步,你可能已经安装了IIS(互联网信息服务)(如果没有,那么你可以通过网络平台安装程序找到它。)

您需要的其他事项是:

  • 网址重写模块
  • ARR(申请请求路由)
  • Plone安装在您的一台服务器/机器上

这些也可以通过网络平台安装程序找到(你可以直接从微软网站上下载任何这些)

  1. 从那里你要打开IIS,
  2. 从列表中选择ARR(如果您看不到它,则可能需要打开 IIS直接而不是通过服务器管理器,如果那是什么 你做了)
  3. 检查启用代理选项
  4. 确保勾选使用URL重写选项(在代理类型下)
  5. 并在反向代理文本框中输入[pathToServer]:[port]
  6. 如果plone与IIS在同一服务器上,则pathToServer将只是localhost,否则它是您服务器的路径。端口将是你在buildout文件中设置的任何东西(默认为8080)[自然你拿出那里的方括号]

    现在只是一个问题或设置重写规则

    1. 从IIS中打开URL重写模块
    2. 打开新创建的入站规则(最有可能称为ARR_server_proxy)
    3. 在您想要的匹配网址下使用正则表达式匹配模式
    4. 此处的模式应为^(。*)
    5. 从那里开始,在行动中选择重写
    6. 在重写网址部分:
    7. 输入:

      http://[pathToServer]:[port]/VirtualHostBase/http/[mysiteisthis.com]:80/[nameofplonesite]/VirtualHostRoot/{R:1}
      

      例如我的可能是:

      http://localhost:9090/VirtualHostBase/http/mysite.com:80/Plone/VirtualHostRoot/{R:1}
      

      此virtualhostbase和virtualhostroot是Plone(在Zope层中)的一部分,称为虚拟主机怪物。它基本上告诉它当您浏览网站时使网站显示mysite.com

      关于第4部分你就知道了。 ^表示URL的开头,即。意味着什么,*意味着任何次数。这里的圆括号告诉我们,它们内部的任何内容都将被捕获以供以后使用(在这种情况下它将进入{R:1})您可以查找正则表达式以获取有关它是什么以及使用它的其他方法的更多信息。