【问题标题】:How to make your Plone site accessible via IIS如何通过 IIS 访问您的 Plone 站点
【发布时间】:2014-05-21 01:39:23
【问题描述】:

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

这是设置,您在 windows 环境(在我的情况下为 windows server 2008r2)中设置了一个 Plone 站点(我使用过 3.3、4.0 和 4.3)。 您想让该站点显示为您的用户期望的 URL。 如http://mysiteisthis.com 这样访问 mysiteisthis.com/aPage 的人就会被定向到正确的页面,并且仍然可以看到正确的 URL。

这对于 Apache 有很好的文档记录,但对于 IIS 没有真正的文档记录。我不能说这是否是由于大多数 Plone 站点管理员决定走 linux 和 apache 路径,或者它只是被认为太容易了。无论如何,我将在下面描述我的解决方案

【问题讨论】:

    标签: iis plone reverse-proxy


    【解决方案1】:

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

    所以如果你不想使用 enfold 那还有另一种选择。 基本上你要做的是设置一个反向代理。

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

    你需要的其他东西是:

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

    这些也可以通过网络平台安装程序找到(您大概也可以直接从微软网站下载其中任何一个)

    1. 您想从那里打开 IIS,
    2. 从列表中选择ARR(如果看不到,可能需要打开 IIS 直接而不是通过服务器管理器,如果那是什么 你做到了)
    3. 检查启用代理选项
    4. 确保勾选使用 URL 重写选项(在代理类型下)
    5. 并在反向代理文本框中输入 [pathToServer]:[port]

    如果 plone 与 IIS 在同一台服务器上 pathToServer 将只是 localhost,否则它是您的服务器的路径。端口将是您在构建文件中设置的任何内容(默认为 8080)[自然而然,您在那里取出方括号]

    现在只需要设置重写规则即可

    1. 从 IIS,打开 URL 重写模块
    2. 打开新创建的入站规则(很可能称为 ARR_server_proxy)
    3. 在匹配 URL 下,您希望使用正则表达式匹配模式
    4. 这里的模式应该是^(.*)
    5. 从那里,在操作下选择重写
    6. 在重写网址部分:

    输入:

    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})您可以查找正则表达式以获取有关它是什么以及其他使用方式的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-26
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 2010-10-13
      相关资源
      最近更新 更多