Nginx Proxy Pass для S3 - PullRequest
       17

Nginx Proxy Pass для S3

0 голосов
/ 05 апреля 2019

Возникли проблемы с передачей прокси на S3.

location ~ ^/abc/(.*)$ {
  set $bucket abcd.s3-website-us-east-1.amazonaws.com;
  proxy_http_version     1.1;
  proxy_set_header       Connection "";
  proxy_set_header       Authorization '';
  proxy_set_header       Host $bucket;
  proxy_hide_header      x-amz-id-2;
  proxy_hide_header      x-amz-request-id;
  proxy_hide_header      x-amz-meta-server-side-encryption;
  proxy_hide_header      x-amz-server-side-encryption;
  proxy_hide_header      Set-Cookie;
  proxy_ignore_headers   Set-Cookie;
  proxy_intercept_errors on;
  add_header             Cache-Control max-age=31536000;

  proxy_pass             http://$bucket/$1;
}

Когда я делаю https://example.com/abc, прокси проходит нормально.Однако, поскольку статические файлы, такие как href, ссылаются на абсолютный путь (то есть href="/123"), когда я нажимаю на ссылку, он перенаправляет example.com/123 и возвращает 404. Если я должен был получитьзапрос на example.com/abc/123 будет обработан.

Мой вопрос: как мне сделать так, чтобы запросы из абсолютных путей (/123) разрешались как example.com/abc/123?

Я попытался использовать модуль sub_filter для правильной установки, но я не могу заставить его работать должным образом с пакетом Heroku Buildpack, который я раздвоил. Репо в buildpack

В результате возникла ошибка:

nginx: [emerg] unknown directive "sub_filter" 

Наконец, у меня фактически нет доступа к статическим файлам в корзине S3, эта частьфактически управляется другой командой.

edit: исправление, путь не относительный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...