3

我已经在我的服务器上安装了 Subversion Edge。假设我的网站是myweb.com. 要访问主存储库(称为main),用户必须访问https://myweb.com/svn/main. 或者,他们可以去https://myweb.com/viewvc查看所有的回购。如果他们想登录并更改密码,他们必须去https://myweb.com:4434。我希望请求https://myweb.com解析到这个登录页面,而不是简单地说“它有效!”的页面。

这可能通过 Apache 和/或 Subversion Edge 配置实现吗?

编辑:我已将此添加到我的httpd.conf. 当我将浏览器指向https://myweb.com/ach它时,它就会挂起。

LoadModule proxy_module lib/modules/mod_proxy.so
LoadModule proxy_http_module lib/modules/mod_proxy_http.so

ProxyPreserveHost On
ProxyPass /ach http://myweb.com:4434/
ProxyPassReverse /ach http://myweb.com:4434/

#ProxyPreserveHost On
#<Location /agh>
#       ProxyPass https://myweb.com:4434/
#       ProxyPassReverse http://myweb.com:4434/
#</Location>
4

2 回答 2

2

我相信您想在 http(端口 80)或 https(端口 443)上的默认标准端口上运行 Edge 控制台。标准端口需要额外设置。有两个选项允许使用端口 80 或 443。只需要一个或另一个,并且都需要 root 权限才能设置。

方法 1:使用绑定助手应用程序。

httpd_bind 是 CollabNet Subversion Edge 中包含的一个小型应用程序,允许服务器访问标准端口,而无需服务器本身以提升的权限运行。为了使其工作,httpd_bind 必须由 root 拥有并设置其 suid 位,如下面的命令所示。这些必须以 root 或 sudo 身份执行。

chown root:jeyanthan /path/to/csvn/lib/httpd_bind/httpd_bind chmod u+s /path/to/csvn/lib/httpd_bind/httpd_bind

注意:“jeyanthan”是解压应用程序的用户名。

方法二:sudo下启动httpd

svn 服务器可以以 root 权限启动,允许它绑定到端口,之后服务器将降低其权限。要使用此方法并允许从管理控制台启动和停止服务器,请设置 sudo 以使 httpd 二进制文件无需密码即可工作。

使用“/usr/sbin/visudo”将以下两行添加到 sudoers 文件的末尾:

默认值 env_keep += "PYTHONPATH" jeyanthan ALL=(ALL) NOPASSWD: /path/to/csvn/bin/httpd

于 2014-09-26T07:38:38.387 回答
1

运行的 Subversion Edge 管理 Web 应用程序https://myweb.com:4434由嵌入式 Web 服务器(我认为是 Tomcat)提供服务。

因此,您可以设置从https://myweb.com/https://myweb.com:4434/的 Apache 反向代理

但是,您需要在不影响https://myweb.com/svn/https://myweb.com/viewvc/下的现有路径的情况下执行此操作,因此有点棘手。我建议把它分成两部分:

首先,设置从https://myweb.com/admin/https://myweb.com:4434/的反向代理,然后一旦工作正常,从https://myweb设置重定向或重写规则.com/https://myweb.com/admin/

这两个都可以在 Apache 配置中完成。

于 2014-09-25T08:33:27.803 回答