对于运行在cloudcontrol上的Python / Django应用程序,建议如何重写url,例如将wordpress博客附加到某个url路径(如example.com/ blog / ),甚至只是重定向子域?
我知道如何使用一个.htaccess文件来完成这个任务--是否有类似的方法可以在cloudcontrol上工作呢?我找到了一些使用.htaccess文件的示例cctrl应用程序(例如apps/blob/master/php/kohana/example.htaccess),但这些都是PHP,它似乎不适用于我的Django应用程序。
发布于 2014-12-15 10:01:23
你有多种选择。让我先解释一下基本概念。通常,cloudControl上的每个应用程序都有自己的子域,比如APP_NAME.cloudcontrolled.com。路由层将向这些子域(或来自指向该子域的CNAME )的请求转发到一个或多个可用于服务请求的容器。每个容器内运行的内容由Buildpack控制。根据每个语言生态系统(例如PHP )的首选项,容器中的运行时环境不同。因此,对于PHP,Apache是可用的,而Python则是不可用的。
选项1:推荐的方法是让www.example.com指向PYTHON_APP.cloudcontrolled.com,blog.example.com指向PHP_APP.cloudcontrolled.com。
选项2:或者,如果您必须使用/blog而不是blog.子域,您可以教运行在PHP容器中的Apache只为/blog提供请求,并将所有其他内容转发给PYTHON_APP.cloudcontrolled.com。
选项3:很快您也会有第三个选项,但还没有可用。我们目前正在努力使Python能够在容器中运行Nginx,并使用WSGI与Python进程通信。(目前,process必须直接侦听$PORT并直接服务HTTP )一旦Nginx可用,您还可以将其配置为将/blog转发到PHP_APP.cloudcontrolled.com,并直接为其他一切服务。
我的建议是采用选项1,因为这使两个应用程序都保持了良好的解耦。通过将Python中的/blog永久地重定向到blog.example.com,可以使迁移变得无痛。
https://stackoverflow.com/questions/27444181
复制相似问题