<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://jackxiang.com/post//</link>
<title><![CDATA[Nginx代理Apache模式的SVN]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[Unix/LinuxC技术]]></category>
<pubDate>Fri, 07 Nov 2014 02:17:58 +0000</pubDate> 
<guid>http://jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	背景：从最早还是svn的模块和apache结合紧密一些，而后来Nginx的崛起后，也很多服务器用的是Nginx，这块个人认为Nginx应该以Https的形式来代码Apache内部的http，这样更安全一些。<br/><br/>1、安装nginx（略）<br/><br/>Nginx安装配置详解 http://www.linuxidc.com/Linux/2013-03/80471.htm<br/><br/>2、安装apache、apache模块包、subversion<br/>yum -y install httpd subversion mod_dav_svn<br/><br/>3、建立版本库主目录：<br/>mkdir -p /data/svndata<br/>chown -R apache.apache/data/svndata<br/><br/>4、编写一个创建svn库的脚本<br/>#!/bin/sh<br/>#$0:svncreate.sh<br/>if [ $# -ne 1 ]; then<br/>echo “Usage: $0 repository_name”<br/>exit 1<br/>fi<br/>sudo svnadmin create --fs-type fsfs /data/svndata/$&#123;1&#125;<br/>sudo chown -R apache:apache /data/svndata/$&#123;1&#125;<br/>sudo chmod -R g+w /data/svndata/$&#123;1&#125;<br/>sudo chmod g+s /data/svndata/$&#123;1&#125;/db<br/><br/>注：不指定--fs-type默认也是fsfs<br/><br/>5、创建一个测试库并导入数据<br/>创建<br/>1 /shell/svncreate.sh svn-shopex<br/><br/>导入数据<br/>svn import /data/webroot/cachebbsfile:///data/svndata/svn-shopex<br/><br/>6、apache配置<br/>vim /etc/httpd/conf.d/subversion.conf<br/>&lt;Location /svn&gt;<br/>DAV svn<br/>SVNListParentPath off<br/>SVNParentPath &quot;/data/svndata/&quot;<br/>AuthType Basic<br/>AuthName &quot;Subversion Authentication!&quot;<br/>AuthzSVNAccessFile /data/svndata/authz<br/>AuthUserFile /data/svndata/passwd<br/>Require valid-user<br/>SVNIndexXSLT &quot;/svnindex.xsl&quot;<br/>&lt;/Location&gt;<br/><br/>注：<br/><br/>/data/svndata/authz 所有库用户的权限管理文件，无需单独配置每个库的conf下的文件，无需启动svn进程。<br/><br/>/data/svndata/passwd 用户密码管理文件（由htpasswd生成）<br/><br/>注意事项：<br/>a、修改监听端口<br/>b、确定已加载svn模块：<br/>&nbsp;&nbsp;[root@CentOS-6 svndata]# httpd -M &#124; grep svn<br/>&nbsp;&nbsp;&nbsp;&nbsp;dav_svn_module (shared)<br/>&nbsp;&nbsp;&nbsp;&nbsp;authz_svn_module (shared)<br/>&nbsp;&nbsp;Syntax OK<br/>c、SVNIndexXSLT &quot;/svnindex.xsl&quot; 界面美观设置，可选。如果不使用代理，直接放到svndata主目录中，即可；使用nginx代理，只需放到nginx站点目录中。<br/>&nbsp;&nbsp;下载资源：wget -L -r -np --user guest --password &#039;&#039;http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/svnindex/<br/>d、不管是使用乌龟客户端还是WEB访问，都会产生大量日志，可以考虑关闭日志。<br/>e、本次使用的是默认站点，如果有其它站点，可以把以上配置单独放到某个站点配置中<br/><br/><br/>7、生成认证文件<br/>1 htpasswd -n sndapk &gt;&gt;/data/svndata/passwd<br/><br/>&nbsp;&nbsp;......<br/><br/>8、nginx配置<br/>配置站点：<br/>server &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;listen 80;<br/>&nbsp;&nbsp;&nbsp;&nbsp;server_name test.cn;<br/>&nbsp;&nbsp;&nbsp;&nbsp;location ~ &#92;.(ico&#124;xsl&#124;css)$ &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root /data/webroot/svnhtml;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;location /svn &#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header Host $host;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header X-Real-IP $remote_addr;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header X-Forwarded-Proto https;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy_pass http://127.0.0.1:8080/svn/;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/>下载界面资源文件：<br/>cd /data/webroot/svnhtml<br/>wget -L -r -np --user guest --password &#039;&#039; http://tortoisesvn.tigris.org/svn/tortoisesvn/trunk/contrib/svnindex/<br/><br/> <br/><br/>注意事项：<br/>a、nginx默认限制上传文件不能大于1M，如果大于1M，会产生错误：”413 Request Entity Too Large“，解决：<br/>&nbsp;&nbsp;在http上下文中添加行并重启服务：client_max_body_size 10m;<br/><br/>9、权限配置<br/>vim /data/svndata/authz<br/>[groups]<br/>sa = sndapk,sndapk3,sndapk5<br/>devel = sndapk2,sndapk4<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>[svna:/]<br/>@sa = rw<br/>* =<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>[svn-shopex:/]<br/>@sa = rw<br/>* =<br/>#[/] #如果单独对库指定了权限会覆盖全局的权限配置<br/>#* = r<br/><br/>（完成）<br/><br/><br/>========================================================<br/>以下是源码安装apache、subversion<br/><br/>源码安装apr apr-util<br/>/usr/local/apr-1.5.0<br/>/usr/local/apr-util-1.5.3<br/>apache安装：<br/>./configure &#92;<br/>--prefix=/usr/local/apache-2.2.26 &#92;<br/>--enable-deflate &#92;<br/>--enable-headers &#92;<br/>--enable-so &#92;<br/>--enable-rewrite &#92;<br/>--enable-cgi &#92;<br/>--enable-file-cache &#92;<br/>--enable-cache &#92;<br/>--enable-disk-cache &#92;<br/>--enable-mem-cache &#92;<br/>--enable-dav &#92;<br/>--with-apr=/usr/local/apr-1.5.0/bin/apr-1-config &#92;<br/>--with-apr-util=/usr/local/apr-util-1.5.3/bin/apu-1-config<br/>make &amp;&amp; make install<br/>subversion安装:<br/>./configure &#92;<br/>--prefix=/usr/local/svn-1.7.14 &#92;<br/>--with-apxs=/usr/local/apache-2.2.26/bin/apxs &#92;<br/>--with-apr=/usr/local/apr-1.5.0/bin/apr-1-config &#92;<br/>--with-apr-util=/usr/local/apr-util-1.5.3/bin/apu-1-config &#92;<br/>--with-zlib &#92;<br/>--with-openssl &#92;<br/>--without-berkeley-db<br/>问题：<br/>不实别rpm包安装的apr apr-util<br/>解决：源码安装apr apr-util，并手动指定<br/>configure: error: Subversion requires SQLite<br/>解决：sqlite官网下载最新包，然后拷贝sqllite.c到指定subversion源码目录中，安装1.8.5版本的subversion，提示 sqlite太旧，安装1.7.14解决。<br/>#配置部分同上<br/><br/><br/>摘自：http://www.linuxidc.com/Linux/2014-02/96985.htm<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; http://www.educity.cn/net/1619123.html
]]>
</description>
</item><item>
<link>http://jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] Nginx代理Apache模式的SVN]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>