我问一个问题,当你知道怎么做时可能很容易,但是经过多次尝试后我仍然无法管理。
我可以通过以下网址访问JavaEE网站: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
“隐身”,但我无法做到。
先谢谢你的帮助,
答案 0 :(得分:2)
Route
无法在网址通过时操纵网址。 path
设置仅指示该子路径的URL是否应该与该路由匹配并通过,它不会更改URL。
如果您不能只更改应用程序以在站点的根目录而不是子URL上安装应用程序,那么您将不得不在OpenShift内部部署您自己的代理,这可以执行URL为你重写。
答案 1 :(得分:2)
如果您正在使用其中一个OpenShift JWS / Tomcat构建器映像,并且您希望您的应用/站点在根上下文中可用,请确保使用ROOT.war
名称对于要部署的war文件。
在相应的上下文中部署了其他名称,如果<route_url>/sitePerso
用于二进制部署,则为sitePerso.war
。
所以基本上,将战争的名称改为ROOT.war
可以解决问题。