【问题标题】:Mounting a ProxyPass site at the same root url as wordpress在与 wordpress 相同的根 url 上安装 ProxyPass 站点
【发布时间】:2016-11-30 20:05:35
【问题描述】:

我们有一个当前在 Wordpress 上运行的网站。我们正在开发一个 Django 站点来替换它。加班,目标是慢慢地用 Django 替换 Wordpress 网站的部分内容。我们通常会像这样为 Django 设置它:

ProxyPass /newcontent/static !
ProxyPass /newcontent uwsgi://127.0.0.1:3031/ retry=0
ProxyPassReverse /newcontent uwsgi://127.0.0.1:3031/newcontent/ retry=0

这将在ourwebsite.com/newcontent 挂载Django/uWSGI 应用程序。但是,这意味着所有 Django URL 都将从该根目录开始,例如ourwebsite.com/newcontent/aboutus。有没有办法配置 Apache,所有请求都将转到 Wordpress,除非在 conf 中特别说明?我可以想象,制作大量 uWSGI 条目是一种方法,但是 Django 看到了各种基本路径,这在内部并不能很好地工作。

最后,如果我能做这样的事情是最好的:

# Normal Wordpress config, DirectoryIndex, etc

# Django Specific Stuff
/about-us                # Goes to Django
/admin/*                 # Django admin
/our-products/*          # This and all subpaths to Django
/static/*                # Same, all static content

此外,我们始终在 Django 站点上提供 httpS,因此最好将任何 Django 提供的 URL 重定向到 Apache 内的 https。

随着时间的推移,我们将慢慢替换 wordpress url,直到最后,Django 是唯一被服务的东西。此时,我们只需清理配置以将所有 URL 发送到 Django。

【问题讨论】:

    标签: django wordpress apache uwsgi mod-proxy


    【解决方案1】:

    一种解决方案是使用ProxyPassMatch。这是一个未经测试的示例:

    ProxyPassMatch "^/newcontent/((one|two|three|four)(/|$).*) uwsgi://127.0.0.1:3031/$1 retry=0
    

    在此示例中,onetwothreefour 是应该由 Django 提供的 URL。

    如果ProxyPassMatch做不到,用mod_rewrite当然可以做到。

    正则表达式很难理解。即使你没事,你周围的其他人也不会。所以最好避免它们。因此,如果可能的话,另一种解决方案是列出 Wordpress URL 而不是 Django URL:

    ProxyPass /newcontent/five !
    ProxyPass /newcontent/six !
    ProxyPass /newcontent uwsgi://...
    

    fivesix 将由 Wordpress 提供服务。


    更新:我睡着了我的答案,我想知道;你说

    我可以想象,创建大量 uWSGI 条目将是一种方法,但是 Django 看到了各种基本路径,这在内部运行得不太好。

    那么下面会有什么问题呢?

    ProxyPass /newcontent/one uwsgi://127.0.0.1:3031/one
    ProxyPass /newcontent/two uwsgi://127.0.0.1:3031/two
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-03
      • 2018-04-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多