如何解决使用nginx-inress从/重定向到www
我有一个带有nginx-ingress的kubernetes集群,我尝试使用nginx.ingress.kubernetes.io/from-to-www-redirect注释将http://test.domain.com重定向到http://www.test.domaine.com。
但这似乎不起作用。
我的入口资源:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app-ingress
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
spec:
rules:
- host: www.test.domain.com
http:
paths:
- path: /
backend:
serviceName: app
servicePort: 8080
- host: test.domain.com
http:
paths:
- path: /
backend:
serviceName: app
servicePort: 8080
我尝试了许多配置,但无法使其正常工作。 nginx.ingress.kubernetes.io/from-to-www-redirect注释无效!
解决方法
这是社区Wiki的答案。随意扩展它。
要使其正常工作,您还需要使用nginx.ingress.kubernetes.io/configuration-snippet
annotation。例如:
nginx.ingress.kubernetes.io/configuration-snippet: |
if ($host = 'example.com' ) {
rewrite ^ https://www.example.com$request_uri permanent;
}
正如@apoorvakamath在评论中已经提到的那样,您可以参考this guide以获得逐步的详细示例:
代码段是解决方案的一个聪明方面。它允许您添加 动态配置到入口控制器。我们用它来检测 使用网址的非www形式,然后简单地发出一个 重新写出(并通过您的域返回)到www 表格。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。