1

对于在 cloudcontrol 上运行的 Python / Django 应用程序,重写 url 的推荐方法是什么,例如将 wordpress 博客附加到特定的 url 路径(如 example.com/blog/),甚至只是重定向子域?

我知道如何使用 .htaccess 文件执行此操作 - 是否有可以在 cloudcontrol 上工作的等效项?我发现了一些使用 .htaccess 文件的示例 cctrl 应用程序(例如https://github.com/cloudControl/example_apps/blob/master/php/kohana/example.htaccess),但这就是 PHP 并且它似乎不适用于我的 Django 应用程序。

4

1 回答 1

1

您有多种选择。让我先解释一下基本概念。通常,cloudControl 上的每个应用程序都有自己的子域,例如APP_NAME.cloudcontrolled.com. 对这些子域(或来自指向该子域的 CNAME)的请求由路由层转发到一个或多个可用于服务请求的容器。每个容器内运行的内容由 Buildpack 控制。根据每种语言生态系统的偏好(例如 PHP 与 Python),容器中的运行时环境会有所不同。因此,对于 PHP,Apache 可用,而对于 Python,则不可用。

选项 1:推荐的方法是让例如www.example.compoing toPYTHON_APP.cloudcontrolled.comblog.example.compoint toPHP_APP.cloudcontrolled.com

选项 2:或者,如果您必须使用/blog而不是blog.子域,您可以教在 PHP 应用程序的容器内运行的 Apache 仅服务于请求/blog并将其他所有内容转发到PYTHON_APP.cloudcontrolled.com.

选项 3:很快你也会有第三种选择,但目前尚不可用。我们目前正在努力使 Python buildpack 在容器内运行 Nginx,并使用 WSGI 与 Python 进程进行通信。(目前 Python 进程必须监听 $PORT 并直接服务 HTTP)一旦 Nginx 可用,您还可以将其配置为转发/blogPHP_APP.cloudcontrolled.com直接服务其他所有内容。

我的建议是使用选项 1,因为这样可以很好地分离两个应用程序。/blog通过在 Python 应用程序中永久重定向到blog.example.com您可以使迁移变得轻松。

于 2014-12-15T10:01:23.933 回答