使用nginx入口控制器重写

使用nginx入口控制器重写,nginx,kubernetes,kubernetes-ingress,nginx-ingress,Nginx,Kubernetes,Kubernetes Ingress,Nginx Ingress,我正在Kubernetes内的港口用nginx入口控制器运行芹菜花 我想根据文档对/flower/(*)请求转到/$1的地方进行重写: 我已经想出了以下的入口 apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:后端气流入口 名称空间:edna 注释: kubernetes.io/ingres.class:“nginx” nginx.ingres.kubernetes.io/use-regex:“true” ingress.kubernetes

我正在Kubernetes内的港口用nginx入口控制器运行芹菜花

我想根据文档对/flower/(*)请求转到/$1的地方进行重写:

我已经想出了以下的入口

apiVersion:networking.k8s.io/v1beta1 种类:入口 元数据: 名称:后端气流入口 名称空间:edna 注释: kubernetes.io/ingres.class:“nginx” nginx.ingres.kubernetes.io/use-regex:“true” ingress.kubernetes.io/rewrite-target://2美元 #nginx.ingres.kubernetes.io/app-root:/flower 规格: 规则: -主持人: http: 路径: -路径:/flower(/|$)(*) 后端: 服务名称:气流花卉服务 服务端口:5555 在豆荚里跑花,我成功地得到了

curl本地主机:5555/仪表板
但是,如果进入运行Nginx控制器的POD,那么它将失败

curl localhost/flower/dashboard
我得到了花的回应:



错误,找不到页面

这是我在nginx控制器pod中的nginx.conf中看到的

server {                                                                                                                                                           
                server_name _ ;                                                                                                                                            
                                                                                                                                                                           
                listen 80 default_server reuseport backlog=511 ;                                                                                                           
                listen 443 default_server reuseport backlog=511 ssl http2 ;                                                                                                
                                                                                                                                                                           
                set $proxy_upstream_name "-";                                                                                                                              
                                                                                                                                                                           
                ssl_certificate_by_lua_block {                                                                                                                             
                        certificate.call()                                                                                                                                 
                }                                                                                                                                                          
                                                                                                                                                                           
                location ~* "^/flower(/|$)(.*)" {                                                                                                                          
                                                                                                                                                                           
                        set $namespace      "edna";                                                                                                                        
                        set $ingress_name   "backend-airflow-ingress";                                                                                                     
                        set $service_name   "";                                                                                                                            
                        set $service_port   "";                                                                                                                            
                set $location_path  "/flower(/|${literal_dollar})(.*)";                                                                                                    
                                                                                                                                                                           
                        rewrite_by_lua_block {                                                                                                                             
                                lua_ingress.rewrite({                                                                                                                      
                                        force_ssl_redirect = false,                                                                                                        
                                        ssl_redirect = true,                                                                                                               
                                        force_no_ssl_redirect = false,                                                                                                     
                                        use_port_in_redirects = false,                                                                                                     
                                })                                                                                                                                         
                                balancer.rewrite()                                                                                                                         
                                plugins.run()                                                                                                                              
                        }                                                                                                                                                  
                                                                                                                                                                           
                        # be careful with `access_by_lua_block` and `satisfy any` directives as satisfy any                                                                
                        # will always succeed when there's `access_by_lua_block` that does not have any lua code doing `ngx.exit(ngx.DECLINED)`                            
                        # other authentication method such as basic auth or external auth useless - all requests will be allowed.                                          
                        #access_by_lua_block {                                                                                                                             
                        #}                                                                                                                                                 
                                                                                                                                                                           
                        header_filter_by_lua_block {                                                                                                                       
                                lua_ingress.header()                                                                                                                       
                                plugins.run()                                                                                                                              
                        }                                                                                                                                                  
                                                                                                                                                                           
                        body_filter_by_lua_block {                                                                                                                         
                        }             

好的,我知道了

ingress.kubernetes.io/rewrite-target: /$2
在我的例子中应该是一个不同的注释

nginx.ingress.kubernetes.io/rewrite-target: /$2

好的,我知道了

ingress.kubernetes.io/rewrite-target: /$2
在我的例子中应该是一个不同的注释

nginx.ingress.kubernetes.io/rewrite-target: /$2