Обратный прокси Nginx с аргументами, переданными в контейнер - PullRequest
0 голосов
/ 26 февраля 2019

Я хочу как-то передать имя сегмента в aws_s3_bucket и proxy_pass и заменить область на aws_key_scope, если сегмент находится в другом регионе, чтобы он работал для нескольких сегментов без запуска нескольких контейнеров - каждый с различной конфигурацией.Приведенная ниже конфигурация работает, как и ожидалось, но она настроена на одно статическое ведро.Таким образом, чтобы получить доступ к файлу из определенного в конфиге конфига, я должен вызвать http://IP_or_hostname/file,, что я хочу, это http://IP_or_file/$bucket/file. Это основано на модуле https://github.com/anomalizer/ngx_aws_auth, который не поддерживает переменные какупоминается здесь: https://github.com/anomalizer/ngx_aws_auth/issues/49. Возможно ли это с Nginx?

worker_processes 1;

events {
  worker_connections 1024;
}

http {
    server {
    listen 80;
    client_max_body_size 100G;
    aws_access_key 'AKI';
    aws_signing_key "xyz";
    aws_key_scope "20190226/eu-west-2/s3/aws4_request";
    aws_s3_bucket 'bucket_name';

    location / {
       aws_sign;
       aws_access_key "AKI";
       aws_signing_key "xyz";
       aws_key_scope "20190226/eu-west-2/s3/aws4_request";
       aws_endpoint "s3.eu-west-2.amazonaws.com";
       proxy_pass http://bucket_name.s3.eu-west-2.amazonaws.com/;
       resolver 8.8.8.8 valid=300s;
       resolver_timeout 10s;
       }
    }
}
...