以下是我的清单:
apiVersion: v1
kind: Service
metadata:
name: jenkins
spec:
type: NodePort
ports:
- port: 8080
protocol: TCP
targetPort: 8080
nodePort: 80
selector:
app: jenkins
#externalTrafficPolicy: "Cluster"
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错误。
答案 0 :(得分:1)
您没有指定要从外部访问的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: /
保留当前设置。
✌️</ p>