Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.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
如何在Openshift v3中将请求映射到pod中的多个端口?_Openshift_Openshift 3 - Fatal编程技术网

如何在Openshift v3中将请求映射到pod中的多个端口?

如何在Openshift v3中将请求映射到pod中的多个端口?,openshift,openshift-3,Openshift,Openshift 3,我有一个处理http和ws请求的web应用程序。我正在尝试将其部署到Openshift v3。因此,我需要将我的请求映射到pod中的端口80和90。然而: 正如中提到的,路由不可能公开多个端口,因此,我不能仅仅根据端口将请求映射到不同的服务 我尝试设置一条路由,将任何端口映射到具有多个端口的服务,但收到警告 路由没有目标端口,但服务有多个端口。路线 将在服务上的所有公开端口之间进行循环通信 我不能为http和ws使用不同的路由,因为为http获取的会话cookie不会附加到web套接字请求 解决

我有一个处理http和ws请求的web应用程序。我正在尝试将其部署到Openshift v3。因此,我需要将我的请求映射到pod中的端口80和90。然而:

  • 正如中提到的,路由不可能公开多个端口,因此,我不能仅仅根据端口将请求映射到不同的服务
  • 我尝试设置一条路由,将任何端口映射到具有多个端口的服务,但收到警告
  • 路由没有目标端口,但服务有多个端口。路线 将在服务上的所有公开端口之间进行循环通信

  • 我不能为http和ws使用不同的路由,因为为http获取的会话cookie不会附加到web套接字请求
  • 解决方案(?):

    • 建议使用入口控制器,但它似乎只能由群集管理员设置
    • 我可以使用两个路由,并为每个路由设置一个单独的cookie,但这似乎不正确——为什么我必须为两个域使用两个cookie,而实际上只有一个域具有一个身份验证
    • 切换到令牌身份验证

    那么,我错过了什么?处理此问题的最佳方法是什么?

    如果任何websocket端点位于唯一的子URL路径下,则可以添加第二个路由,其中该路由具有适用于该路由的子URL路径的路径定义。然后,您可以将该子URL路径下的请求路由到备用端口。除了主端口,您还需要在服务上定义备用端口,或者为备用端口创建单独的服务。需要查看您当前的服务定义才能更具体。奇怪的是,您会在pod上使用端口80和90,因为这意味着您正在以
    root
    身份运行容器,这在OpenShift上是不正常的,因为在容器托管平台上以
    root
    身份运行任何容器都存在安全风险。

    对不起,端口是8080和8090。我曾尝试创建两个具有不同路径的路由,并将它们映射到两个服务,但如果主机名相同,则会出现“路由已存在”错误。(这可能是因为我使用的是Openshift Online Starter,因此,我无法指定主机名--生成的主机名的形式为-…要有两个具有相同主机名的路由,我需要为路由指定相同的名称,这是不允许的。)您是否为路由本身指定了不同的名称?无法使用与现有路由相同的名称。如果使用不同的路由名称,主机名也将不同。正如我所说,生成的主机名的形式是-。。如果这两个路由具有不同的主机名,则不会为ws-request发送http请求设置的cookie。创建第二个路由时,请显式将路由的主机名设置为第一个路由生成的主机名。路由的名称仍然必须不同,而不是主机名。在我阅读的文档中“路由在OpenShift Online Starter中受限制,但在OpenShift Online Pro中不受限制。OpenShift Online Pro中允许自定义路由主机。如果使用OpenShift Online Starter,则在所有用户路由上强制执行以下主机模板:-.”。对不起,如果我误解了什么。如何显式设置主机名?在web控制台中,主机名字段变灰