linux上nginx+apache 搭建 svn服务器
众所周知,nginx目前是不支持svn的,并且由于机房网络只开了80和22(ssh)端口,所以这时候就没法单独在服务器上搭建apache+svn 。所以就产生了 nginx + apache + svn的需求,具体做法是将外网通过80端口进来的请求到达nginx之后转发到apache上,然后进行svn操作。具体的安装及详细的配置这里不一一赘述了 网上有很多解决方案。主要说一下,nginx做反向代理到apache的配置及经常容易出现的权限不足问题。
首先通过iptables打开一个本机的8080端口作为apache端口,由于机房网络禁用了8080端口,所以这时候请求是不能通过8080端口到达服务器的,但是可以通过nginx的80端口到达nginx,这时候再在本机转发给apache的8080端口就可以了,具体nginx配置文件如下
server {
listen 80;
server_name yourdomain;
location / {
root html/svn;
index index.html index.htm;
proxy_pass http://127.0.0.1:8080;
}
}
其余的ngixn、apache、svn配置按常规配,这时候不需要在svn里配置用户密码及访问规则了,因为是通过apache过来的请求,这时候只要在apache里配置好用户密码及访问规则文件就可以了。
其余省略1万字。
接下来,在配置完全正确的情况下,还是会经常会出现各种各样的权限问题,比如可以下载更新svn,但是不能提交上传。只要出现这样的权限问题说明了,肯定在某个地方的权限配置还是存在错误的地方。一般会出现在这2个地方。
1 首先,仓库的存放目录,如果放在 /usr/local ... 等目录下,是不可以的,应该将仓库目录放在 /var/* 目录下,比如 /var/www/repos
2 在目录放正确的情况下,还是会出现上传权限不够的情况是什么原因呢?这时候看看 apache配置文件里的用户和组 都是 apahce 而 /var/www/repos 的用户和组是非apache的用户,问题就出在这里。因为nginx把请求转发给apache之后,apahce将请求交给svn,这时候svn的用户是谁啊?是apache ,所以只要将/var/www/repos的用户和组改为 apache:apache 即可,问题基本解决。
其余的种种问题网上基本都有解决方案,所以只写这点关键部分吧。如果在查了N多资料还是解决不了 nginx + apache + svn 搭建过程中遇到的问题,请联系我!
最新文章
- SVN数据仓库迁移
- Android应用的安全的攻防之战
- BZOJ 1013 &; 高斯消元
- Html - Footer
- MATLAB画ROC曲线,及计算AUC值
- SpriteKitCommonUse
- 支持IE,FireFox,Chrome三大主流浏览器,通过js+Flash方式将table导出Excel文件
- Javascript执行环境、作用域链
- Open vSwitch源码阅读【转】及自己的理解【稍后更新】
- JavaScript面向对象,闭包内存图,闭包和作用域
- Java并发编程之ConcurrentHashMap(转)
- struts2 模型分配问题和延迟加载问题
- Cocos2d-x shader学习3: sprite描边(Outline)
- 一个简单的cmake例子
- Netty学习笔记(三) 自定义编码器
- MongoDB操作集
- 【repost】javascript callback
- 常用 ADB 命令[ZZ]
- Python函数式编程(二):常见高级函数
- H5 17-兄弟选择器
热门文章
- linux下实时查看tomcat运行日志
- 2748: [HAOI2012]音量调节
- jQuery官方基础教程笔记(转载)
- PHP程序设计经典300例
- 用C写的俄罗斯方块游戏 By: hoodlum1980 编程论坛
- 深入浅出话VC++(2)——MFC的本质
- [chrome插件分享] gitlab-tree 更方便的浏览Gitlab上的代码
- android 用NineOldAndroid实现的弹出按钮
- Scala:条件表达式的好处
- 微软今日发布汇总:VS2015, .NET 4.6, C# 6.0, F# 4.0等重量级产品正式上线