Svn 使用nginx代理多个Subversion repo
我目前有一台老化的subversion 1.4.2服务器,有多个repo,我想升级。我想做几件事:Svn 使用nginx代理多个Subversion repo,svn,configuration,nginx,reverse-proxy,Svn,Configuration,Nginx,Reverse Proxy,我目前有一台老化的subversion 1.4.2服务器,有多个repo,我想升级。我想做几件事: 移动到更新版本(1.7+)的subversion 将存储库拆分为不同的计算机 更改主机名(我马上解释) 更改为在URL上使用FQDN而不是路径(我可能正确理解您的上下文。我相信您知道这一点,但SVN也在不同的端口上运行,因此您可能会遇到问题:) 关于nginx中的location参数,您必须记住,它只是为您在配置中设置的服务器名称定义位置。因此,对于上面定义为data.svn.company.c
- 移动到更新版本(1.7+)的subversion
- 将存储库拆分为不同的计算机
- 更改主机名(我马上解释)
- 更改为在URL上使用FQDN而不是路径(我可能正确理解您的上下文。我相信您知道这一点,但SVN也在不同的端口上运行,因此您可能会遇到问题:)
关于nginx中的
参数,您必须记住,它只是为您在配置中设置的服务器名称定义位置。因此,对于上面定义为location
的唯一服务器名称,您正在为该子域定义每个位置。我认为您实际上是在尝试定义多个子域 因此,如果是这种情况,您必须设置多个服务器名称,例如data.svn.company.com
和main.svn.company.com
,而不是定义位置URIdata.svn.company.com
希望有帮助:)因此,我最终通过编辑端点服务器(即我要离开的服务器)在两个不同的位置拥有相同的存储库:
第一个服务器将路由到代理服务器,代理服务器将路由到第二个服务器。第二个和第三个(如果直接连接到)将直接路由到旧服务器 作为参考,我的nginx代理条目现在如下所示:<VirtualHost 10.11.22.33> Servername svn.svr.mycompany.co.uk <Location /data> DAV svn SVNPath /home/svnrepo/data [... Some regular auth stuff ...] </Location> </VirtualHost> <VirtualHost 10.11.22.33> Servername data.svn.svr.mycompany.co.uk <Location /> DAV svn SVNPath /home/svnrepo/data [... Some regular auth stuff ...] </Location> </VirtualHost>
server { listen 80; listen 443 ssl; server_name data.svn.mycompanyglobal.net; proxy_set_header Host data.svn.svr.mycompany.co.uk; location / { proxy_pass http://data.svn.svr.mycompany.co.uk/; } }
每个回购协议都会有一个(在我上面的例子中是“数据”和“主数据”)谢谢!事实上,我已经想出了办法——我已经用我的解决方案回应了。酷,没问题。如果答案是一个可能的解决方案,请通过“检查”让我知道,这样我就知道我的魔咒仍然有效;)Unusable URI: it does not refer to this repository
http://data.svn.mycompanyglobal.net/data
<VirtualHost 10.11.22.33> Servername svn.svr.mycompany.co.uk <Location /data> DAV svn SVNPath /home/svnrepo/data [... Some regular auth stuff ...] </Location> </VirtualHost> <VirtualHost 10.11.22.33> Servername data.svn.svr.mycompany.co.uk <Location /> DAV svn SVNPath /home/svnrepo/data [... Some regular auth stuff ...] </Location> </VirtualHost>
http://data.svn.mycompanyglobal.net/ http://data.svn.svr.mycompany.co.uk/ http://svn.svr.mycompany.co.uk/data
server { listen 80; listen 443 ssl; server_name data.svn.mycompanyglobal.net; proxy_set_header Host data.svn.svr.mycompany.co.uk; location / { proxy_pass http://data.svn.svr.mycompany.co.uk/; } }