<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">14 декабря 2016 г., 17:41 пользователь Alexandr Porunov <span dir="ltr"><<a href="mailto:alexandr.porunov@gmail.com" target="_blank">alexandr.porunov@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px">Всем привет,<br></div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px"><br></div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px">Я хочу использовать Nginx в качестве прокси для S3 совместимого хранилища с 4 версией подписи (Amazon s3 signature version 4).</div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px"><br></div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px">Я новичёк в Nginx, но попробую обьяснить что я хочу сделать.</div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px"><br></div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px">У меня есть 3 сервера:</div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px"><br></div><div style="color:rgb(0,0,0);font-family:tahoma,arial,verdana,sans-serif;font-size:12px"><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px"><a href="http://mydomain.com/" target="_blank">mydomain.com</a> - публичный сервер с запущенным Nginx</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px">s3storage - приватный сервер с хранилищем с S3 API</div><div style="color:rgb(34,34,34);font-family:arial,sans-serif;font-size:12.8px">client - клиент который хочет использовать S3 хранилище через Nginx (т.е. через домен <a href="http://mydomain.com" target="_blank">mydomain.com</a>). Этот клиент умеет работать только с 4 версией S3 подписи.</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Таким образом клиент отправляет примерно такие запросы к Nginx:</div><div style="font-size:12.8px"> <span style="font-size:12.8px">https://<bucket>.</span><a href="http://mydomain.com/" style="font-size:12.8px" target="_blank">mydomain.<wbr>com/</a><span style="font-size:12.8px"><my_files></span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">где <bucket> - имя бакета и <my_files> - имя файла (если есть).</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">Я должен иметь возможность как-то правильно проксировать эти запросы с </span><a href="http://mydomain.com/" style="font-size:12.8px" target="_blank">mydomain.com</a> к <span style="font-size:12.8px">s3storage (у </span><span style="font-size:12.8px">s3storage IP 192.168.0.45</span><span style="font-size:12.8px">).</span></div><div style="font-size:12.8px"><span style="font-size:12.8px"><br></span></div><div style="font-size:12.8px"><span style="font-size:12.8px">Проблема в том что имя бакета находиться в URL, а не в пути. Не понятно как правильно проксировать такие запросы чтобы подпись оставалась целой и чтобы можно было получать файлы с </span><span style="font-size:12.8px">s3storage.</span></div></div></blockquote><div><br></div><div>каким образом использовать бакет, в днс или в пути - это на усмотрение клиента, допустимы оба варианта<br><br><a href="http://stackoverflow.com/questions/16938683/">http://stackoverflow.com/questions/16938683/</a><br><br><br></div><div>(пример для клиента на c#)<br><br><pre class="gmail-lang-cs gmail-prettyprint gmail-prettyprinted"><code><span class="gmail-pln">    </span><span class="gmail-typ">AmazonS3Config</span><span class="gmail-pln"> S3Config </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-kwd">new</span><span class="gmail-pln"> </span><span class="gmail-typ">AmazonS3Config</span><span class="gmail-pun">()</span><span class="gmail-pln">
    </span><span class="gmail-pun">{</span><span class="gmail-pln">
        </span><span class="gmail-typ">ServiceURL</span><span class="gmail-pln"> </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-str">"<a href="http://s3.amazonaws.com">s3.amazonaws.com</a>"</span><span class="gmail-pun">,</span><span class="gmail-pln">
        </span><span class="gmail-typ">ForcePathStyle</span><span class="gmail-pln"> </span><span class="gmail-pun">=</span><span class="gmail-pln"> </span><span class="gmail-kwd">true</span><span class="gmail-pun">,</span><span class="gmail-pln">
        </span><span class="gmail-typ">RegionEndpoint</span><span class="gmail-pln"> </span><span class="gmail-pun">=</span><span class="gmail-pln"> region
    </span><span class="gmail-pun">};<br><br></span></code></pre><pre class="gmail-lang-cs gmail-prettyprint gmail-prettyprinted"><code><span class="gmail-pun"><span style="font-family:arial,helvetica,sans-serif">более предсказуемая схема - перевести клиента и сервер на единообразный механизм. иначе подпись будет биться <br>(и не совсем понятно, почему это надо чинить на nginx в транзите)</span><br></span></code></pre><pre class="gmail-lang-cs gmail-prettyprint gmail-prettyprinted"><code><span class="gmail-pun"><br></span></code></pre><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Если кто-то знает как правильно настроить Nginx, то подскажите, пожалуйста</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">С уважением,</div><div style="font-size:12.8px">Александр</div></div>
<br>______________________________<wbr>_________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" rel="noreferrer" target="_blank">http://mailman.nginx.org/<wbr>mailman/listinfo/nginx-ru</a><br></blockquote></div><br></div></div>