我正在使用一个具有一些私有路由的大型单片应用程序。这些私有路由目前由普通的经典nginx服务器管理。
我需要将它迁移到Kubernetes,并且我必须拒绝对这些路由的所有外部访问。我正在使用GKE和AFAIK,私有化路由可以在nginx-ingress控制器中完成。
我正在尝试使用server-snippet,但它似乎不起作用。下面是当前的代码:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
nginx.org/websocket-services: service-ws
nginx.org/server-snippet: |
location /private {
allow 10.100.0.0/16; #Pods IPs
allow 10.200.0.0/16; #Pods IPs
deny all;
}
generation: 3结果是/private路由始终返回200,而不是401/403。我还尝试创建一个重定向,而不是允许/拒绝,也得到200个而不是301个重定向。
你有什么想法或小贴士让它工作吗?
发布于 2019-01-14 21:41:56
在许多链接之后,技巧是前缀在大多数文档中都不是最新的:
下面是一个工作示例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/server-snippet: |-
location /management_api {
allow 1.2.3.4/16; # Pod address range
allow 1.3.4.5/16; # Pod address range
deny all;
proxy_http_version 1.1;
proxy_redirect off;
proxy_intercept_errors on;
proxy_set_header Connection "";
proxy_set_header X-CF-Visitor $http_cf_visitor;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://10.11.12.13;
}享受吧!
https://stackoverflow.com/questions/54125470
复制相似问题