使用后备文件将proxy_pass传递到s3存储桶

时间:2020-02-19 03:01:56

标签: nginx amazon-s3 nginx-reverse-proxy

我目前正在尝试使{3}}到S3存储桶中,具体取决于在存储桶中具有回退文件的标头。

这是我的要求:

  • 所有请求都将发送到/
  • 我在请求中总是有此标头:X-Service-Name
  • 如果S3存储桶中有一个名为test.html的文件,并且X-Service-Name = test,那么我应该渲染该文件
  • 否则,它应回退到S3存储桶中的index.html

我尝试了很多事情,例如proxy_pass,它看起来并不能用于远程文件。我无法使用try_files进行后备工作(有可能吗?)。 rewrite也不适用于远程文件。

这是我当前的配置:

server {
  listen 80 default_server;
  server_name _;

  root /usr/share/nginx/html;

  location = / {
    index $http_x_service_name.html index.html;
  }

  location / {
    proxy_pass https://s3-ap-southeast-2.amazonaws.com/mybucket/;
  }
}

但是仅当我在/usr/share/nginx/html中创建与我的服务相对应的空文件时这才是愚蠢的。

0 个答案:

没有答案