我正在尝试使用nginx-ingress反向代理。
但是我找不到仅在某些路径中应用反向代理的方法
例如,我要从CDN静态资源中应用反向代理http://myservice.com/about/ *
和其他路径为我提供服务(例如,它表示“ my-service-web”服务)
也许就k8而言,CDN表示“公共外部服务”
结果
这是我的ingress.yaml文件
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: my-service-web
namespace: my-service
annotations:
kubernetes.io/ingress.class: nginx-ingress
nginx.ingress.kubernetes.io/server-snippet: |
location ~ /about/(.*) {
proxy_pass https://CDN_URL/$1${is_args}${args};
......and other proxy settings
}
spec:
rules:
- host: myservice.com
http:
paths:
- path: /about
........how do i configuration this?
- path: /*
backend:
serviceName: my-service-web
servicePort: 80
我如何设置规则和注释?
答案 0 :(得分:1)
您可以创建类型为externalName的服务,该服务将指向您的外部服务(CDN),对此blog post进行了很好的说明,例如:
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: my-service
spec:
type: ExternalName
externalName: FQDN
,然后通过引用服务名称在您的入口规则中使用它。