Re: Как использовать Nginx в качестве прокси для S3 совместимого хранилища?

Alexandr Porunov alexandr.porunov на gmail.com
Ср Дек 14 13:30:23 UTC 2016


Да, забыл написать что в тот клиент использует имя бакета в днс. Не умеет
использовать в пути...

2016-12-14 15:28 GMT+02:00 Alexandr Porunov <alexandr.porunov на gmail.com>:

> Я же написал что клиент поддерживает только 4 версию. Я не использую
> клиент на c#.
> Если написать развёрнуто, то вот что я использую:
> Я использую SaltStack.
> SaltStack нуждается в хранилище (он поддерживает разные хранилища:
> локальная папка, git, s3, azure...).
> Лично мне удобно использовать s3 (локальная папка в моём случае не
> приемлема).
> Так вот, для того чтобы работать с s3 у них есть специальный модуль s3fs
> который умеет использовать s3 обьектное хранилище. Этот модуль написан на
> Python и этот модуль умеет работать только с 4 версией подписи. Там просто
> не написана логика работы для 2 версии.
> Я не могу перевести клиента на вторую версию по двум причинам:
> 1. Нужно переписывать чужой модуль
> 2. Я никогда не работал с Python
>
> Нужно понимать что я не использую s3.amazon.com. У меня своё приватное
> хранилище которые никоем образом не относиться к амазону. Просто что у
> этого хранилища точно такое-же API как и у Амазона.
>
> Единственное решение это настроить Nginx чтобы он правильно проксировал
> запросы к моему хранилищу.
>
> 2016-12-14 14:53 GMT+02:00 Илья Шипицин <chipitsine на gmail.com>:
>
>>
>>
>> 14 декабря 2016 г., 17:41 пользователь Alexandr Porunov <
>> alexandr.porunov на gmail.com> написал:
>>
>>> Всем привет,
>>>
>>> Я хочу использовать Nginx в качестве прокси для S3 совместимого
>>> хранилища с 4 версией подписи (Amazon s3 signature version 4).
>>>
>>> Я новичёк в Nginx, но попробую обьяснить что я хочу сделать.
>>>
>>> У меня есть 3 сервера:
>>>
>>> mydomain.com - публичный сервер с запущенным Nginx
>>> s3storage - приватный сервер с хранилищем с S3 API
>>> client - клиент который хочет использовать S3 хранилище через Nginx
>>> (т.е. через домен mydomain.com). Этот клиент умеет работать только с 4
>>> версией S3 подписи.
>>>
>>> Таким образом клиент отправляет примерно такие запросы к Nginx:
>>>  https://<bucket>.mydomain.com/<my_files>
>>>
>>> где <bucket> - имя бакета и <my_files> - имя файла (если есть).
>>>
>>> Я должен иметь возможность как-то правильно проксировать эти запросы с
>>> mydomain.com к s3storage (у s3storage IP 192.168.0.45).
>>>
>>> Проблема в том что имя бакета находиться в URL, а не в пути. Не понятно
>>> как правильно проксировать такие запросы чтобы подпись оставалась целой и
>>> чтобы можно было получать файлы с s3storage.
>>>
>>
>> каким образом использовать бакет, в днс или в пути - это на усмотрение
>> клиента, допустимы оба варианта
>>
>> http://stackoverflow.com/questions/16938683/
>>
>>
>> (пример для клиента на c#)
>>
>>     AmazonS3Config S3Config = new AmazonS3Config()
>>     {
>>         ServiceURL = "s3.amazonaws.com",
>>         ForcePathStyle = true,
>>         RegionEndpoint = region
>>     };
>>
>> более предсказуемая схема - перевести клиента и сервер на единообразный механизм. иначе подпись будет биться
>> (и не совсем понятно, почему это надо чинить на nginx в транзите)
>>
>>
>>
>>
>>
>>>
>>> Если кто-то знает как правильно настроить Nginx, то подскажите,
>>> пожалуйста
>>>
>>> С уважением,
>>> Александр
>>>
>>> _______________________________________________
>>> nginx-ru mailing list
>>> nginx-ru на nginx.org
>>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>>
>>
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru на nginx.org
>> http://mailman.nginx.org/mailman/listinfo/nginx-ru
>>
>
>
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20161214/bac99603/attachment.html>


Подробная информация о списке рассылки nginx-ru