是否可以在 ingress-nginx 上提供来自 s3 的静态文件?

3 nginx amazon-s3 kubernetes kubernetes-ingress nginx-ingress

我目前正在尝试实现一个不会触及/膨胀后端的错误页面。

理论上,在 503 上,它应该将来自主机的请求代理到https://mybucketname.s3.amazonaws.com/folder/file.html

我得到的最接近的是重定向到 s3 页面,但是,在这种情况下,它必须被代理。

我的服务器片段目前包含以下内容:

  server-snippet: |
    error_page 404 "https://mywebsite.com/notfound";
    proxy_intercept_errors on;
Run Code Online (Sandbox Code Playgroud)

Ant*_*ick 7

您需要向 Ingress 清单添加一些元数据

metadata:
  annotations:
    nginx.ingress.kubernetes.io/upstream-vhost: <s3bucketname>
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
    nginx.ingress.kubernetes.io/use-regex: "true"
Run Code Online (Sandbox Code Playgroud)

此外,您还需要创建一个将由 Ingress 使用的服务

就像这样的东西:

kind: Service
apiVersion: v1
metadata:
  name: front-end-service
spec:
  type: ExternalName
  externalName: <s3bucket or cloudfront link>
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
Run Code Online (Sandbox Code Playgroud)