在CentOS上架设Nginx+Apache+Subversion
Nginx和Apache是两种常用的Web服务器,各有各的优势。由于Nginx短期内不会支持Subversion Server,要架设的话,可以通过一个Apache与Nginx共存的服务器实现。本文介绍CentOS上相关软件包的安装与初步配置。
本文来自尘缘的博客,原文标题为《CentOS下的Nginx+Apache+Subversion Server安装笔记》。
我的Linux服务器均为CentOS,这两天刚刚折腾完LNMP的配置,接下来继续折腾SVN的环境配置。
在编译SVN时,发现Nginx尚不支持Subversion,查了相关资料,发现只有Apache可以支持SVN,无可奈何,看来只能做一个Apache与Nginx共存的服务器,用Nginx proxy把发向Nginx的SVN请求转到Apache上去。
如何安装Nginx,可以去参考张宴的Nginx教程,这应该是国内最早最全最详细的Nginx教程了,至于如何安装Apache,估计也挺简单的,我这里已经配置好了一个Nginx+Apache的服务器了。
按买醉的说法,nginx处理静态页的效率是apache的N倍,但在动态程序,特别是Java和PHP的处理上,Apache具有相当的优势。
这按Nginx官方的说法,短期内不会有可能支持SVN,至于两者之间的权衡,各位看官可得留意了。
说一下,Subversion Server并没有专门针对CentOS的版本,下载编译的话,用RHEL的即可。
我刚刚也找到了下载地址:http://www.collab.net/downloads/subversion/redhat.html
现在开始CentOS的安装过程。
除了下载软件包以外,还可以使用YUM安装:
- $ sudo yum install httpd subversion mod_dav_svn
建立版本库(Repository):
- $ sudo mkdir -p /var/lib/subversion/repositories
- $ sudo chown -R apache:apache /var/lib/subversion
如果版本库的增改次数很频繁,可以写一个简单的脚本来实现快速调用:
- #!/bin/sh
- if [ $# -ne 1 ]; then
- echo 1>&2 Usage: $0 repository_name
- exit 127
- fi
- echo "Sudoing...";
- sudo svnadmin create --fs-type fsfs /var/lib/subversion/repositories/${1}
- sudo chown -R apache:apache /var/lib/subversion/repositories/${1}
- sudo chmod -R g+w /var/lib/subversion/repositories/${1}
- sudo chmod g+s /var/lib/subversion/repositories/${1}/db
接下来就是apache的配置了,这里要保证两个模块都已经正确放到模块目录中:
- LoadModule dav_svn_module modules/mod_dav_svn.so
- LoadModule authz_svn_module modules/mod_authz_svn.so
- DAV svn
- SVNParentPath /var/lib/subversion/repositories
- SVNListParentPath on
- SVNPathAuthz off
- AuthType Basic
- AuthName "subversion@tokyo"
- AuthUserFile /var/lib/subversion/passwords
- Require valid-user
然后要配置SVN的密码:
- $ sudo htpasswd -c /var/lib/subversion/passwords new-user-name
最后重启HTTPD服务:
- $ sudo /etc/init.d/httpd restart
下面要做的就是Apache和Nginx配置,然后实现Nginx的代理过程,就有待下次介绍了。