Kubernetes NGINX入口:禁用特定路径的基本身份验证
我只想在我的应用程序的特定子路径上禁用基本身份验证。如何做到这一点 e、 g 所有子路径都应该是基本身份验证安全的:Kubernetes NGINX入口:禁用特定路径的基本身份验证,nginx,kubernetes,basic-authentication,kubernetes-ingress,Nginx,Kubernetes,Basic Authentication,Kubernetes Ingress,我只想在我的应用程序的特定子路径上禁用基本身份验证。如何做到这一点 e、 g 所有子路径都应该是基本身份验证安全的: / /#/public 此路径应为例外且可公开访问: / /#/public 亚马尔酒店 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: app labels: app: app annotations: kubernetes.io/ingress.class:
/
/#/public
此路径应为例外且可公开访问:
/
/#/public
亚马尔酒店
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: app
labels:
app: app
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
ingress.kubernetes.io/auth-type: basic
ingress.kubernetes.io/auth-secret: basic-auth
ingress.kubernetes.io/auth-realm: "Authentication Required"
spec:
rules:
- host: "<MYHOST>"
http:
paths:
- path: /
backend:
serviceName: app-service
servicePort: 80
tls:
- secretName: "app-secret"
hosts:
- "<MYHOST>"
apiVersion:extensions/v1beta1
种类:入口
元数据:
名称:应用
标签:
app:app
注释:
kubernetes.io/ingres.class:nginx
kubernetes.io/tls-acme:“正确”
ingress.kubernetes.io/auth-type:basic
ingress.kubernetes.io/auth-secret:basic auth
ingress.kubernetes.io/auth-realm:“需要身份验证”
规格:
规则:
-主持人:“
http:
路径:
-路径:/
后端:
服务名称:应用服务
服务端口:80
tls:
-secretName:“应用程序机密”
主持人:
- ""
您尝试使用的路径(/#/public
)从未到达服务器,客户端只发送/
。这就是您无法禁用反身份验证的原因
符号(#)是URL片段标识符的分隔符。这就是原因
片段标识符的语义是数据的一个属性
由检索操作生成,而与所使用的URI类型无关
在参考中
如果跟踪入口吊舱的日志,您将看到到达后端的url
另一个注意事项是,如果您需要url到达服务器,那么您需要对其进行url编码,/%23/public
,但是,它具有不同的含义
问候 您尝试使用的路径(
/#/public
)从未到达服务器,客户端只发送/
。这就是您无法禁用反身份验证的原因
符号(#)是URL片段标识符的分隔符。这就是原因
片段标识符的语义是数据的一个属性
由检索操作生成,而与所使用的URI类型无关
在参考中
如果跟踪入口吊舱的日志,您将看到到达后端的url
另一个注意事项是,如果您需要url到达服务器,那么您需要对其进行url编码,/%23/public
,但是,它具有不同的含义
问候 谢谢你的解释,但是如果它只是应用程序的一个子路径,我该如何禁用它呢。e、 g./public?您可以尝试创建另一个入口定义,在不使用身份验证注释的情况下捕获路径。并且/#/public将被应用程序替换?例如:将调用:/addUser/public,因为请求内容是关于添加用户的?我会读到的。谢谢。嗨@TimSchwalbe我也有同样的问题,这是我的问题的答案,你能看看你是否能从你的经验中得到帮助吗?对不起,没有解决。但您可以尝试这样做:nginx.ingres.kubernetes.io/server-snippet:|location~*/[^/]+/public{auth_basic“off”;include/etc/nginx/uwsgi_params;uwsgi_pass unix:/tmp/app.sock;},但确实不确定它是否能工作@是关于招摇过市吗?谢谢你的解释,但是如果它只是应用程序的一个子路径,我怎么禁用它呢。e、 g./public?您可以尝试创建另一个入口定义,在不使用身份验证注释的情况下捕获路径。并且/#/public将被应用程序替换?例如:将调用:/addUser/public,因为请求内容是关于添加用户的?我会读到的。谢谢。嗨@TimSchwalbe我也有同样的问题,这是我的问题的答案,你能看看你是否能从你的经验中得到帮助吗?对不起,没有解决。但您可以尝试这样做:nginx.ingres.kubernetes.io/server-snippet:|location~*/[^/]+/public{auth_basic“off”;include/etc/nginx/uwsgi_params;uwsgi_pass unix:/tmp/app.sock;},但确实不确定它是否能工作@那是关于招摇过市吗?