我正在为我的 Rails 应用程序设置新的 VPS,并考虑将我的网站从 apache 转移到 nginx(为了做到这一点,我还必须将我的 apache 配置转换为 nginx,我必须学习这一点)。然而,在执行此操作之前,有一件事让我考虑,那就是我也想在新的 VPS 上托管我的 SVN,而且我知道 SVN 不能在 nginx 上运行。
我知道我可以通过 svnserve 运行 svn(尽管我对此没有任何经验),但我不知道这样做是否有任何陷阱。我读到使用 svn+ssh 不允许 svn 缓存密码,这是我所希望的,但我不确定没有 ssh 的 svn:// 是否安全。
所以我的问题是,是否最好:
- 使用 nginx 作为我的网络服务器,并使用 svnserve(带或不带 ssh?)作为 svn?
- 使用 apache 作为我的网络服务器和 svn?
- 使用 nginx 作为我的网络服务器并使用 apache 作为 svn?
答案1
- svn:// 本身是不安全的(纯文本)
- svn+ssh:// 是安全的
- 通过 https:// 进行 SVN 是安全的
我最近从 svn:// 切换到 https://,主要是因为我可以在 Apache 中配置 LDAP 身份验证,这样我就不必为存储库配置单独的用户名/密码。
我很好奇你为什么要从 Apache 切换到其他的?(我没有使用 nginx 的经验。)
我对 svnserve 的主要不满是,身份验证是基于每个存储库的,因此,如果像我一样,每个应用程序都有一个存储库,而您有 20 多个存储库,那么您就会在维护方面感到头疼。
另外,如果您正在运行 HTTP 或 HTTPS,那么使用该服务就很有意义,而不必维护其他服务。我的 SVN 是 Apache 中的单独虚拟主机。
然而 svnserve 确实有它的优点 - 它易于设置并且零配置(对于服务器而言)。
答案2
如果其他条件相同,我会选择复杂度最低的路径(#2 - Apache for www & svn)。
SVN over HTTPS 被认为与您的 HTTPS 配置一样安全(因此禁用 SSLv2,使用强证书,您可能就没问题了)。