Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 我可以(DNS)将一个子域映射到多个Play Framework入口点吗_Web Services_Networking_Playframework_Dns - Fatal编程技术网

Web services 我可以(DNS)将一个子域映射到多个Play Framework入口点吗

Web services 我可以(DNS)将一个子域映射到多个Play Framework入口点吗,web-services,networking,playframework,dns,Web Services,Networking,Playframework,Dns,下面的情况可能吗?警告:我只理解DNS的基本形式 我们有一个API(使用构建),我们希望通过一个地址,比如 但是,我们希望将此API分为两个播放项目(例如myapione和myapitwo)。 然后仅使用一个域,但使用两个单独的“子文件夹”访问它们 所以我一直在寻找映射的可能性,比如说 到 。。。和另一个应用程序 到 我们正在寻找的最终结果如下。 我们会接到看起来像 也是 也是游戏不管理虚拟主机概念。如果需要,您必须使用HTTP前端服务器:Apache、Nginx和Varnish 例如,在Ngi

下面的情况可能吗?警告:我只理解DNS的基本形式

我们有一个API(使用构建),我们希望通过一个地址,比如

但是,我们希望将此API分为两个播放项目(例如myapione和myapitwo)。 然后仅使用一个域,但使用两个单独的“子文件夹”访问它们

所以我一直在寻找映射的可能性,比如说

。。。和另一个应用程序

我们正在寻找的最终结果如下。 我们会接到看起来像

也是


也是

游戏不管理虚拟主机概念。如果需要,您必须使用HTTP前端服务器:Apache、Nginx和Varnish

例如,在Nginx中:

server {
  listen: 80
  server_name main.virtual.host alias.virtual.host;

  proxy_pass http://localhost:3000;
}
目标是:

Public URL              -> maps to -> internal URL
http://api.publicname.com/myapione -> http://localhost:9000
http://api.publicname.com/myapitwo -> http://localhost:9001
正如@applicius所说,通过一个“前端”或“源”HTTP服务器来实现,该服务器将请求代理到较低级别的“应用程序”或“服务”HTTP服务器。但这并不是关于虚拟主机的

Nginx、Apache等都很常见。我觉得nginx很棒。一个商业产品,它做到了这一点,是惊人的是宙斯或ZXTM。我想它已经被买断了,所以我不确定它是否还可以单独使用

nginx的上述配置,类似于:

server {
    listen       80;
    server_name  api.publicname.com/myapione;

    location /myapione {
        proxy_pass        http://localhost:9000;
        proxy_set_header  X-Real-IP  $remote_addr;
    }

    location /myapitwo {
        proxy_pass        http://localhost:9001;
        proxy_set_header  X-Real-IP  $remote_addr;
    }
}
这种方法允许您将任意多个服务“缝合”在一起,并以一个服务的形式显示给外部调用者。例如,要在
static
下提供静态文件资产,并为
/
下不匹配的所有内容提供正面HTML服务器,请执行以下操作:

    location /static/ {
        alias /app/myapp-pages/static;
    }

    location / {
        proxy_pass        http://localhost:8000;
        proxy_set_header  X-Real-IP  $remote_addr;
    }
有了这一点:

Public URL              -> maps to -> internal URL
http://api.publicname.com/myapione -> http://localhost:9000
http://api.publicname.com/myapitwo -> http://localhost:9001
http://api.publicname.com/static   -> local file assets
http://api.publicname.com/...      -> http://localhost:8000
这不会进行任何负载平衡,但您可以将其他服务放在某个主机上:进行负载平衡的端口,然后将nginx指向该端口

ZXTM
产品很有趣,因为它同时执行上述代理和负载平衡。(我对它的支持并不比其他任何东西都多,只是我看到了它在生产中的应用,令人印象深刻。)


另请注意,Play虽然非常优秀,但更适合于呈现页面和提供更高级别的API,该API结合了对较低HTTP服务的调用。较低级别的HTTP服务可以使用DropWizard之类的工具包编写,它只专注于提供API而不是页面。

我不这么认为,但您可以始终在两个play应用程序前面放置一些代理(Apache/nginx),并执行正确的重定向