SVN設定(Nginx)

^/svnでアクセスされた場合にApache側にProxyPassする。

upstream backend {
    server 127.0.0.1:10080;
}

server {

    listen 80;
    server_name mydomain;
・・・
    location /svn {
        # Rewrite
        rewrite ^/svn/(.*)?$ https://$host/svn/$1 last;
    }
・・・
}

server {

    listen 443;
・・・
    location /svn {
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://backend;
    }
・・・
}                                                                                                                        

単純にProxyPassするとApacheログのアクセス元が127.0.0.1となってしまうので、下記のモジュールを入れてリクエストヘッダにX-Real-IPを追加する。

# sudo apt-get install libapache2-mod-rpaf

参考

http://blog.chibiegg.net/2011/11/17_10_616.htm