SVN über SSL: Viele erneute Verbindungen beim Commit

SVN über SSL: Viele erneute Verbindungen beim Commit

Der SVN-Server in unserem Unternehmen, der selbst eingerichtet und auf EC2 gehostet wird, ist ziemlich langsam. Das Setup basiert auf Apache und mod_dav_svn. Es läuft auch ein Svnserve, der vom CI-System verwendet zu werden scheint. Wir können über SSL mit Server- und Client-Zertifikaten auf die Repositories zugreifen, und mir ist beim Überwachen eines Commits mit Wireshark etwas Merkwürdiges aufgefallen.

Ich hätte erwartet, dass es einen SSL-Handshake gibt, um die Verbindung herzustellen, und dass diese Verbindung während der Sitzung wiederverwendet wird. Es scheint jedoch, dass alle 200 ms/10 KB eine neue TCP-Verbindung mit neuem SSL-Handshake besteht (was aufgrund der Zertifikate eine höhere Nutzlast erzeugt als der SVN-Verkehr selbst).

Konversationen während eines SVN-Commits. Bitte beachten Sie, dass pro Verbindung maximal 10 KB Daten übertragen werden.

Gespräche während eines Commits

Beginn des Commits als Pakete. Soweit ich das beurteilen kann, sendet der Server eine verschlüsselte Warnung, um die SSL-Verbindung zu schließen. Dann sehen Sie den nächsten Handshake ...

Bildbeschreibung hier eingeben

Apache ssl.conf:

LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so

SSLVerifyClient optional
SSLUserName SSL_CLIENT_S_DN_CN
SSLCARevocationFile /etc/httpd/ssl/xxx-revoke.pem

<Location /svn/repos>
    DAV svn
    SVNPath /path/svn/repos
    SSLRequireSSL
    SSLRequire (%{SSL_CLIENT_S_DN_O} in {"c1", "c2"}) and !(%{SSL_CLIENT_S_DN_CN} in {"old1", "old2"})

   # Allow large files
   LimitXMLRequestBody 0
   LimitRequestBody 0
</Location>

Ich verwende TortoiseSVN GUI/CLI-Clients. Ich gehe davon aus, dass auf der Serverseite eine falsche Konfiguration vorliegt. Stimmen Sie zu? Irgendwelche Hinweise?

Antwort1

Ok, ich habe also bereits die Lösung für diese Wiederverbindungen gefunden und lösche die Frage nicht, falls jemand anderes danach sucht.

httpd.conf

-KeepAlive Off
+KeepAlive On

-MaxKeepAliveRequests 100
+MaxKeepAliveRequests 1000

Wenn KeepAlive deaktiviert ist, schließt Apache die Verbindung nach jeder Anfrage. Deshalb haben wir so viele erneute Verbindungen und Zertifikate gesehen.

Diese und weitere Performance-Tipps finden Sie imSVN-Handbuch

verwandte Informationen