Возникли проблемы с передачей прокси на 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: исправление, путь не относительный