<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        font-size:10.5pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin:0cm;
        margin-bottom:.0001pt;
        text-align:justify;
        text-justify:inter-ideograph;
        text-indent:21.0pt;
        font-size:10.5pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;}
/* Page Definitions */
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:358313693;
        mso-list-type:hybrid;
        mso-list-template-ids:-1337284594 -1292492376 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:18.0pt;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%2\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:42.0pt;
        text-indent:-21.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:63.0pt;
        text-indent:-21.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:84.0pt;
        text-indent:-21.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%5\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:105.0pt;
        text-indent:-21.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:126.0pt;
        text-indent:-21.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:147.0pt;
        text-indent:-21.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-text:"%8\)";
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        margin-left:168.0pt;
        text-indent:-21.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        margin-left:189.0pt;
        text-indent:-21.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="ZH-CN" link="#0563C1" vlink="#954F72" style="text-justify-trim:punctuation">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN">I am trying to find a way to use Openstack swift to cache static file for a web server such as nginx, the below are request step:<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">1.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> nginx is configured as a load balance proxy server and web server.
<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> There are several swift , suppose there are 2, that is swift-A,swift-B ,swift-A is control node,and swift-B is storage node<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">3.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> client send a request to nginx for url:
<a href="http://domain.com/filename.txt">http://domain.com/filename.txt</a><o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">4.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> nginx received the request and it is a cache miss, it need to fetch the content from SWIFT proxy server,<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">5.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> nginx send a request to swift proxy server for authentication, the url looks like
<a href="http://swift-proxy/auth-account">http://swift-proxy/auth-account</a>, account information is set in header, the response from swift proxy server contains a auth-token for that account if authentication success.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">6.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> then nginx use this auth-token and put it in a new request header, and send the new request to the swift proxy server for the original request content, there could be a map between client request url to the swift
 proxy url, for example, /filename.txt --> /account/container/filename.txt, so the new request url could be
<a href="http://swift-proxy/account/container/filename.txt,plus">http://swift-proxy/account/container/filename.txt,plus</a> the auth-token.<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:18.0pt;text-indent:-18.0pt;mso-list:l0 level1 lfo1">
<![if !supportLists]><span lang="EN"><span style="mso-list:Ignore">7.<span style="font:7.0pt "Times New Roman"">      
</span></span></span><![endif]><span lang="EN"> swift proxy server response the content to nginx, then nginx cache the content and pass the response to the client.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">I have search for the answer on the internet, and referent this solution:
<a href="https://forum.nginx.org/read.php?2,250458,250463#msg-250463">https://forum.nginx.org/read.php?2,250458,250463#msg-250463</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">Then ,I change my nginx configuration like this:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN">    <o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN" style="background:silver;mso-highlight:silver">server {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">        listen       80;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">        server_name  localhost;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">        location / {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">            root   html;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">            index  index.html index.htm;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">            auth_request
<span style="color:red">/auth/v1.0</span>;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">        }<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">        location
<span style="color:red">/auth/v1.0</span> {<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">                proxy_pass     
<a href="http://192.168.1.1:8080">http://192.168.1.1:8080</a>;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">                proxy_pass_request_body off;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">                proxy_set_header Content-Length "";<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">                proxy_set_header X-Original-URI $request_uri;<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">        }<o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN" style="background:silver;mso-highlight:silver">}</span><span lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal" style="text-indent:21.0pt"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">Port 80 is for nginx,port 8080 is for swift, both can work independently, but after I change the configuration ,use chrome browser enter:10.67. 247.21,it just not working like what I expect, swift proxy return 401 error,
 swift proxy logs report like this :<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">Mar  1 20:43:48 localhost journal: proxy-logging 192.168.1.1 192.168.1.1 01/Mar/2016/20/43/48 GET /auth/v1.0 HTTP/1.0 401 - Mozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/28.0.1500.72%20Safari/537.36
 - - 131 - txbfc24355780143568445c4ddf5d774e3 - 0.0003 -<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">Mar  1 20:43:48 localhost journal: tempauth - 192.168.1.1 01/Mar/2016/20/43/48 GET /auth/v1.0 HTTP/1.0 401 - Mozilla/5.0%20%28Windows%20NT%206.1%3B%20WOW64%29%20AppleWebKit/537.36%20%28KHTML%2C%20like%20Gecko%29%20Chrome/28.0.1500.72%20Safari/537.36
 - - - - txbfc24355780143568445c4ddf5d774e3 - 0.0007</span><span lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">I don’t know does it matter if I use a chrome browser to send request to swift ,it looks like some unrecognized char are include in the request which is nginx send to swift. while I use curl command to send request, it works
 fine, like this :<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[root@localhost ~]#<span style="color:red"> curl -v -H 'X-Storage-User: service:swift' -H 'X-Storage-Pass:swift '
<a href="http://192.168.1.1:8080/auth/v1.0">http://192.168.1.1:8080/auth/v1.0</a><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">*   Trying 192.168.1.1...<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">* Connected to 192.168.1.1 (192.168.1.1) port 8080 (#0)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">> GET /auth/v1.0 HTTP/1.1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">> Host: 192.168.1.1:8080<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">> User-Agent: curl/7.47.1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">> Accept: */*<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">> X-Storage-User: service:swift<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">> X-Storage-Pass:swift
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">>
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< HTTP/1.1 200 OK<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< X-Storage-Url:
<a href="http://192.168.1.1:8080/v1/AUTH_service">http://192.168.1.1:8080/v1/AUTH_service</a><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< X-Auth-Token: AUTH_tk4f2eaa45b35c47b4ab0b955710cce6da<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< Content-Type: text/html; charset=UTF-8<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< X-Storage-Token: AUTH_tk4f2eaa45b35c47b4ab0b955710cce6da<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< Content-Length: 0<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< X-Trans-Id: tx3b90f2a8a3284f52951cc80ca41f104a<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">< Date: Tue, 01 Mar 2016 21:10:50 GMT<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">* Connection #0 to host 192.168.1.1 left intact</span><span lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">It seems swift cannot recognize the request from my nginx which has configed with an addictional module named ngx_http_auth_request_module. Maybe nginx was not passes right user and password to swift. Or shouldn’t I use
 the chrome browser to visit swift through nginx proxy.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">Below is my swift proxy-server.conf:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[DEFAULT]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">bind_port = 8080<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">bind_ip = 192.168.1.1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">workers = 1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">user = swift<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">log_facility = LOG_LOCAL1<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">eventlet_debug = true<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[pipeline:main]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">pipeline = catch_errors healthcheck proxy-logging cache tempurl ratelimit tempauth staticweb  proxy-logging proxy-server<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:catch_errors]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#catch_errors<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = cache_errors<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:healthcheck]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#healthcheck<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = healthcheck<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:proxy-logging]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#proxy_logging<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = proxy-logging<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:ratelimit]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#ratelimit<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = ratelimit<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:crossdomain]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#crossdomain<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = crossdomain<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:tempurl]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#tempurl<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = tempurl<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:tempauth]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#tempauth<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = tempauth<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">user_admin_admin = admin .admin .reseller_admin<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">user_test_tester = testing .admin<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">user_test2_tester2 = testing2 .admin<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">user_test_tester3 = testing3<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">user_service_swift = swift .admin<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:staticweb]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#staticweb<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = staticweb<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[filter:cache]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#memcache<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = memcache<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">[app:proxy-server]<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">use = egg:swift#proxy<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">set log_name = proxy<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">allow_account_management = true<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN" style="background:silver;mso-highlight:silver">account_autocreate = true</span><span lang="EN"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">I have no idea for the 401 error occurred and how to solve this question.Are there some configuration error in my swift or nginx configuration file?
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN">Thanks for your time,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN">Amy</span><span lang="EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
</div>
</body>
</html>