如何解决配置路径字段后,Kubernetes nginx入口显示“ 403”
以下是我的清单:
- service.yaml
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
protocol: TCP
targetPort: 8080
nodePort: 80
selector:
app: jenkins
#externalTrafficPolicy: "Cluster"
- ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: nginx-ingress-entry
annotations:
kubernetes.io/ingress.class: "nginx"
#nginx.ingress.kubernetes.io/ssl-redirect: "true"
nginx.ingress.kubernetes.io/rewrite-target: /
#ingress.bluemix.net/rewrite-path: "serviceName=jenkins rewrite=/"
spec:
tls:
- hosts:
- ingress.hygon.cn
secretName: nginx-cert
rules:
- host: ingress.hygon.cn
http:
paths:
- path: /jenkins
backend:
serviceName: jenkins
servicePort: 8080
我使用nginx入口来控制访问后端服务Jenkins。 如果将http.paths.path设置为“ /”,则一切正常,但是,如果将URL的路径字段设置为浏览器,则会显示403错误。
解决方法
您没有指定要从外部访问的URL。但是我猜测http.paths.path: /
是您的目标:
http://hosname/jenkins
然后,将其修改为http.paths.path: /jenkins
,然后按相同的URL即可获取403
。如果是这种情况,您需要删除nginx.ingress.kubernetes.io/rewrite-target: /
,因为这实际上是将/jenkins
重写为/
,并且您的Jenkins服务器不知道如何提供服务。
或者,您可以更改Jenkins服务器上的配置以在/
下使用,并使用http.paths.path: /jenkins
和nginx.ingress.kubernetes.io/rewrite-target: /
保留当前设置。
✌️
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。