下面是我的清单:
- 服务.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
,并点击与您获得403
相同的URL。如果是这种情况,您需要删除nginx.ingress.kubernetes.io/rewrite-target: /
,因为这实际上是在将/jenkins
重写为/
,而您的Jenkins服务器不知道如何提供它
或者,您可以更改Jenkins服务器上的配置,使其在/
下运行,并使用http.paths.path: /jenkins
和nginx.ingress.kubernetes.io/rewrite-target: /
保持当前设置。
✌️