您有多种选择。让我先解释一下基本概念。通常,cloudControl 上的每个应用程序都有自己的子域,例如APP_NAME.cloudcontrolled.com
. 对这些子域(或来自指向该子域的 CNAME)的请求由路由层转发到一个或多个可用于服务请求的容器。每个容器内运行的内容由 Buildpack 控制。根据每种语言生态系统的偏好(例如 PHP 与 Python),容器中的运行时环境会有所不同。因此,对于 PHP,Apache 可用,而对于 Python,则不可用。
选项 1:推荐的方法是让例如www.example.com
poing toPYTHON_APP.cloudcontrolled.com
和blog.example.com
point toPHP_APP.cloudcontrolled.com
。
选项 2:或者,如果您必须使用/blog
而不是blog.
子域,您可以教在 PHP 应用程序的容器内运行的 Apache 仅服务于请求/blog
并将其他所有内容转发到PYTHON_APP.cloudcontrolled.com
.
选项 3:很快你也会有第三种选择,但目前尚不可用。我们目前正在努力使 Python buildpack 在容器内运行 Nginx,并使用 WSGI 与 Python 进程进行通信。(目前 Python 进程必须监听 $PORT 并直接服务 HTTP)一旦 Nginx 可用,您还可以将其配置为转发/blog
并PHP_APP.cloudcontrolled.com
直接服务其他所有内容。
我的建议是使用选项 1,因为这样可以很好地分离两个应用程序。/blog
通过在 Python 应用程序中永久重定向到blog.example.com
您可以使迁移变得轻松。