Hi all,<br><br>I have to set up an infrastructure that allows the dynamic management of SCM<br>repositories (svn/git, creation/destruction, authentication via MySQL,<br>clone/checkout, pull/update, push/commit).<br><br>This is the way a query that I wanted to set up: nginx receives a request,<br>
#1 matches, request goes to daemon authentication (I use Rack<br><a href="https://github.com/rack/rack/">https://github.com/rack/rack/</a>), it ask for an username and a<br>password (Basic Auth), check the permissions and send the url to execute and<br>
to return to the client via X-Accel-redirect (yet it does nothing but redirect)<br>[configuration is below and is called <a href="http://auth.ru">auth.ru</a>], nginx get the request and<br>match #2, then it forwards to grack (<a href="https://github.com/puzzle/grack/">https://github.com/puzzle/grack/</a>) and<br>
will treat all back to the client. Currently my authtification system works<br>well (i.e. it redirects to the correct url), the daemon grack, when accessed<br>directly, handles correctly the requests of Git clients, but when I try to give<br>
them via nginx, the Content-type header returned to the client is text/plain,<br>this is not those returned by grack. Here's my setup, I made a mistake but I do<br>not see why.<br>Do you have any idea?<br><br><br>For your help,<br>
In advance,<br>Thanks.<br><br># nginx.conf<br>    location ~ /(svn|git)/(.*)$ { #1<br>      proxy_pass         <a href="http://127.0.0.1:8000/$1/$2">http://127.0.0.1:8000/$1/$2</a>;<br>      proxy_redirect     off;<br> <br>
      proxy_set_header   Host                $host;<br>      proxy_set_header   X-Real-IP           $remote_addr;<br>      proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;<br> <br>      proxy_set_header   X-Sendfile-Type     X-Accel-Redirect;<br>
 <br>    }<br> <br>    location ~ /_git/(.*) { #2<br>      internal;<br>      proxy_pass         <a href="http://127.0.0.1:8001/$1">http://127.0.0.1:8001/$1</a>;<br>      proxy_redirect     off;<br> <br>      proxy_set_header   Host                $host;<br>
      proxy_set_header   X-Real-IP           $remote_addr;<br>      proxy_set_header   X-Forwarded-For     $proxy_add_x_forwarded_for;<br> <br>    }<br> <br># <a href="http://auth.ru">auth.ru</a><br>run lambda { |env|<br>
    dir = Rack::Request.new(env).path_info<br>    dir.slice!(0)<br>    dir = '/_' << dir<br>    [200, {"Content-Type" => ".", 'X-Accel-Redirect' => dir}, []]<br>}<br><br>