apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
ingress.bluemix.net/rewrite-path: "serviceName=nginx rewrite=/"
name: nginx-ingress
namespace: 'default'
spec:
rules:
- host: www.domain.com
http:
paths:
- path: /*
backend:
serviceName: nginx
servicePort: 80
在这里,我有一些入口配置yaml
文件。当我将其全部应用正确时,但仅当您通过路径www.domain.com
时,当我尝试使用domain.com
时,它却无法工作并返回我
默认后端-404
我该怎么办?在规则中再添加一个主机:
- host: domain.com
http:
paths:
- path: /*
backend:
serviceName: nginx
servicePort: 80
像这样还是可以更好地解决这个问题?
答案 0 :(得分:4)
向annotations
块添加入口别名注释:
nginx.ingress.kubernetes.io/server-alias: domain.com
答案 1 :(得分:2)
您可以为domain.com
设置另一个主机规则。但是,如果您想要不同的路径规则,则此方法更合适。要使用相同的规则,最好设置server-alias
批注:
允许在服务器定义中定义一个或多个别名 使用注解的NGINX配置
nginx.ingress.kubernetes.io/server-alias: "<alias 1>,<alias 2>"
。这个 将创建具有相同配置的服务器,但添加新的server_name
指令的值。
使用此:
nginx.ingress.kubernetes.io/server-alias: domain.com
请记住,您也可以配置from-to-www-redirect
批注:
在某些情况下,需要从
www.domain.com
重定向到domain.com
,反之亦然。要启用此功能,请使用注释nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
答案 2 :(得分:0)
不确定我们的解决方案是否适合您。 我们也遇到了类似的问题(不确切),我们不想更改已部署的入口(即无法添加服务器别名) 因此,我们采取了一些措施来确保将在浏览器/请求中键入的所有主机地址都转换为在入口中配置的地址。
在此示例中,我们将在本地/ etc / hosts中创建条目
www.domain.com