因為某種原因我們需要用Nginx作為Subversion的http前端,但目前沒有現成的Nginx+Subversion搭配方式。
而Subversion提供Apache的http處理模塊。現在我們通過nginx反向代理給Apache的方式來實現Nginx+Subversion的組合方式。
構建Apache+Subversion的環境
安裝Apache
yum install -y httpd
安裝Subversion
yum install -y subversion
安裝Apache SVN模塊
yum install -y mod_dav_svn
建立SVN庫
mkdir -p /home/svn/ cd /home/svn/ svnadmin create work chown -R apache.apache work
添加Subversion賬號
Linux/1727.html' target='_blank'>htpasswd -c /home/svn/work/conf/passwdfile test
修改/etc/httpd/conf.d/subversion.conf,內容如下
LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /svn/work> DAV svn SVNPath /home/svn/work AuthType Basic AuthName "Authorization Realm" AuthUserFile /home/svn/work/conf/passwdfile AuthzSVNAccessFile /home/svn/work/conf/authz Require valid-user </Location>
啟動httpd
/etc/init.d/httpd start
使用Nginx反向代理
下載nginx
wget http://nginx.org/download/nginx-0.8.55.tar.gz tar -xzvf nginx-0.8.55.tar.gz cd nginx-0.8.55
添加nginx賬號
useradd -s /bin/false nginx
編譯安裝nginx
./configure --prefix=/opt/nginx-0.8.55 \ --with-http_stub_status_module \ --with-http_gzip_static_module make make install cd /opt && ln -sf nginx-0.8.55 nginx && cd -
配置Nginx反向代理,修改/opt/nginx/conf/nginx.conf
server { listen 80; server_name svn.test.com; location /svn/work { proxy_pass http://127.0.0.1/svn/work; } location / { return 404; } }
啟動nginx
/opt/nginx/sbin/nginx
最後
訪問http://svn.test.com/svn/work 即訪問svn庫