How-to Nginx+Apache+SVN.

Привіт!
Мав цікавий досвід налатшування svn+apache+nginx.
Щодо звязки svn+apache - нічого нового, в інеті багато статей,
Головний зміст, проінсталювати apache та SVN модуль до нього:

Крок 1: SVN+APACHE.
Звязати це, використовуючи наступні доки:
http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.webdav.autoversioning
http://wiki.centos.org/HowTos/Subversion
yum install mod_dav_svn subversion

[root@lucifer ~] vim subversion.conf
# Make sure you uncomment the following if they are commented out
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so 
# Add the following to allow a basic authentication and point Apache
# to where the actual# repository resides. 
DAV svn        SVNPath /var/www/svn/repos       
AuthType Basic        AuthName "Subversion repos"       
AuthUserFile /etc/svn_auth_conf        Require valid-user


І от запрацює тоді   переходимо до наступного:
 

Крок2. Nginx+APACHE+SVN:

Додаємо нову локацію для репозиторія:
Location /repo {
auth_basic            "Restricted"; 
# підключаемо авторизацію, викор. спільний файл Nginx та Apache.

auth_basic_user_file  /etc/svn_auth_conf;
client_max_body_size 40m;
error_page 405 = @app;
try_files $uri @app;
}

location @app {
proxy_pass http://127.0.0.1:8080;
} 
 
 
Приблизно оце і все, можливі неточності.
 
 
P.S.
Головне звернути увагу на:
* опцію розміщення самих репів, щоб воно відповідало дійстності.
* Іноді є проблема коли вказано webroot - вихід  --закоментувати.
* Через Nginx -  можна отримати "Error 405. method not allowed." 
це якщо конфігурація локації у Nginx інша - вихід 
--не  кешувати директорію з свн репозиторіями.
* Проблеми, які зявляються підчас скачування великого репа:
це обмеження по обєму скачення в  Nginx 
Вихід: добвити в локацію Nginx, 
 client_max_body_size XXm;


Коментарі