nginx - 配置路径字段后,Kubernetes nginx 入口显示“403”
问题描述
以下是我的清单:
- 服务.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"
- 入口.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: /
✌️
推荐阅读
- python - 如何使用不同的 URL 重试失败的抓取?
- javascript - 如何使用 DataTables 导出用户定义的数据?
- python - Python 命令行选项解析
- jvm - Java 应用程序的 CRIU 用法
- image - 无法提取图像“xx.azurecr.io/xx:latest”:rpc 错误:代码 = 未知 desc = 来自守护进程的错误响应:未经授权:需要身份验证
- javascript - 在方法 GET axios 中发送正文
- wix - 如何在升级时保留配置文件但在卸载时将其删除?
- sql - 在 R 中更快地读取 SQL 表
- android - 使用 shell 命令获取应用程序使用的 Memory-RAM 信息
- python-3.x - 如何在 python 脚本中运行多个命令