在cloudcontrol上,如何进行URL重写?

时间:2014-12-12 12:58:30

标签: python cloudcontrol

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

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

1 个答案:

答案 0 :(得分:1)

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

选项1 :推荐的方法是: www.example.com PYTHON_APP.cloudcontrolled.com blog.example.comPHP_APP.cloudcontrolled.com指向/blog

选项2 :或者,如果您必须使用blog.而不是/blog子域,则可以教授在PHP App中运行的Apache容器仅为PYTHON_APP.cloudcontrolled.com的请求提供服务,并将其他所有内容转发给/blog

选项3 :很快你也会有第三个选项,但现在还没有。我们目前正致力于使Python buildpack在容器内运行Nginx,并使用WSGI与Python进程通信。 (目前Python进程必须侦听$ PORT并直接提供HTTP)只要Nginx可用,您也可以将其配置为将PHP_APP.cloudcontrolled.com转发到/blog并直接提供其他所有内容。

我的建议是选择1,因为这样可以使两个应用程序完美地分离。通过将Python应用中的blog.example.com永久重定向到{{1}},您可以轻松地进行迁移。