OpenShift - 如何将 $url/$path 重定向到一个 $url

3
我正在询问一个问题,如果你知道如何操作,这应该是很容易的,但我在多次尝试后仍然没有成功。
我有一个JavaEE网站,可以通过URL访问:http://siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com/sitePerso/ 但我想让它直接可访问,而不需要sitePerso,例如 http://siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com/
为此,在我的Openshift帐户中,我有一个路由如下:
apiVersion: route.openshift.io/v1
kind: Route
metadata:
  annotations:
    openshift.io/host.generated: 'true'
  creationTimestamp: '2018-02-18T14:00:04Z'
  labels:
    app: siteperso
  name: siteperso
  namespace: valentin
  resourceVersion: '2416325777'
  selfLink: /apis/route.openshift.io/v1/namespaces/valentin/routes/siteperso
  uid: ********
spec:
  host: siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com
  path: /sitePerso/
  port:
    targetPort: 8080-tcp
  to:
    kind: Service
    name: siteperso
    weight: 100
  wildcardPolicy: None
status:
  ingress:
    - conditions:
        - lastTransitionTime: '2018-02-18T14:00:04Z'
          status: 'True'
          type: Admitted
      host: siteperso-valentin.1d35.starter-us-east-1.openshiftapps.com
      routerCanonicalHostname: elb.1d35.starter-us-east-1.openshiftapps.com
      routerName: router
      wildcardPolicy: None

我猜我需要另一种方法来以某种方式“隐藏”sitePerso,但是我无法做到。

感谢您的帮助。

2个回答

4
路由中,无法在 URL 通过时进行操作。 路径设置仅指示是否应该通过该路由匹配和传递子路径的 URL ,它不会更改 URL 。如果您不能将应用程序直接挂载到站点根目录而不是子 URL,则需要在 OpenShift 内部部署自己的代理,该代理可以为您执行 URL 重写。

2
如果您正在使用OpenShift JWS/Tomcat构建图像之一,并且希望您的应用程序/站点在根上下文中可用,请确保使用ROOT.war文件名部署war文件。
其他名称将在相应的上下文下部署,即在二进制部署的情况下使用sitePerso.war<route_url>/sitePerso
因此,基本上将war文件的名称更改为ROOT.war就可以解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接