在GAE flex env中路由nginx

时间:2018-01-22 06:46:47

标签: php google-app-engine nginx

我是GAE和Nginx的新手,这应该很简单,但我花了很多时间没有运气,所以我在这里。

我正在尝试将请求路由到我的Google App Engine PHP Flex环境中的正确位置。我的应用程序的文件夹结构如下所示:

├── api
│   └── public
│       └── rest
├── app.yaml
├── composer.json
└── public
    ├── app1
    └── app2

我的app.yaml看起来像:

runtime: php
env: flex

runtime_config:
  document_root: public
  enable_stackdriver_integration: true

我希望能够从每个app文件夹到API公共文件夹执行ajax请求,其url类似于example.com/api/some_file.php。此外,我想将任何对api / public / rest的调用路由到路由器文件。

我尝试将nginx-http.conf文件添加到项目根目录,如下所示:

server {
    location ^~ /api/ {
        alias /api/public/;
    }

    location ^~ /api/rest/ {
        try_files $uri /routes.php;
    }
}

但是得到404.任何指导都会受到赞赏!

澄清:
第一;如何将请求路由到文档根目录之外的文件夹(同时仍然执行php脚本)? 第二;如何将特定URL的所有请求重定向到单个php路由器文件以进行休息请求?

1 个答案:

答案 0 :(得分:0)

目前,App Engine接受两种方式来路由您的请求:对于具有在域级别结束的URL的请求使用默认路由规则,或者根据您的规则准备路由特定URL模式的调度文件。在这种情况下,如果我是正确的,你想使用第二个选项。在此link中,有关于请求路由的更多信息。

要使用调度文件(dispatch.yaml),您必须通过指示路由请求来自的URL以及请求将发送到的服务进行配置。您可以在此link中获得有关调度文件的更多信息。

定义路由调度文件后,将其存储在项目根目录中并部署PHP应用程序。我建议先将其部署到本地,然后再将其部署到App Engine。