对于在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应用程序。
答案 0 :(得分:1)
您有多种选择。让我先解释一下基本概念。通常,cloudControl上的每个应用都有自己的子域,如APP_NAME.cloudcontrolled.com
。对这些子域(或指向该子域的CNAME)的请求由路由层转发到可用于提供请求的一个或多个容器。每个容器内运行的内容由Buildpack控制。根据每种语言生态系统的偏好(例如PHP与Python),容器中的运行时环境不同。所以对于PHP来说,Apache是可用的,而对于Python则不然。
选项1 :推荐的方法是: www.example.com
PYTHON_APP.cloudcontrolled.com
blog.example.com
和PHP_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}},您可以轻松地进行迁移。