[svnbook] r4955 committed - Translation: ch06-server-configuration.xml part 1 up to and including...

svnbook at googlecode.com svnbook at googlecode.com
Thu Dec 4 09:15:15 CST 2014


Revision: 4955
Author:   jmfelderhoff at gmx.eu
Date:     Thu Dec  4 15:15:11 2014 UTC
Log:      Translation: ch06-server-configuration.xml part 1 up to and  
including
              svn.serverconfig.httpd.perf.keepalive.

https://code.google.com/p/svnbook/source/detail?r=4955

Modified:
  /branches/1.8/de/book/ch06-server-configuration.xml

=======================================
--- /branches/1.8/de/book/ch06-server-configuration.xml	Tue Nov 25 15:14:00  
2014 UTC
+++ /branches/1.8/de/book/ch06-server-configuration.xml	Thu Dec  4 15:15:11  
2014 UTC
@@ -1,3 +1,5 @@
+<!-- -*- sgml -*- -->
+
  <chapter id="svn.serverconfig">
  <!--
    <title>Server Configuration</title>
@@ -50,15 +52,26 @@
      <title>Überblick</title>

  <!--
-    <para>Subversion was designed with an abstract repository access layer.
-      This means that a repository can be programmatically accessed by
-      any sort of server process, and the client <quote>repository
-      access</quote> API allows programmers to write plug-ins that
-      speak relevant network protocols.  In theory, Subversion can use
-      an infinite number of network implementations.  In practice,
-      there are only two Subversion servers in widespread use today.</para>
+    <para>
+      <indexterm>
+        <primary>API</primary>
+        <secondary>layers</secondary>
+        <tertiary>Repository Access (RA) Layer</tertiary>
+      </indexterm>Subversion was designed with an abstract repository
+      access layer.  This means that a repository can be
+      programmatically accessed by any sort of server process, and the
+      client <quote>repository access</quote> API allows programmers
+      to write plug-ins that speak relevant network protocols.  In
+      theory, Subversion can use an infinite number of network
+      implementations.  In practice, there are only two Subversion
+      servers in widespread use today.</para>
  -->
-    <para>Subversion wurde mit einer abstrakten
+    <para>
+      <indexterm>
+        <primary>API</primary>
+        <secondary>Schichten</secondary>
+        <tertiary>Projektarchiv-Zugriffs-Schicht (RA)</tertiary>
+      </indexterm>Subversion wurde mit einer abstrakten
        Projektarchiv-Zugriffs-Schicht entworfen. Dies bedeutet, dass
        auf ein Projektarchiv automatisiert von beliebigen
        Server-Prozessen zugegriffen werden kann, und die für Clients
@@ -70,9 +83,17 @@
        allerdings nur zwei weitverbreitete Server.</para>

  <!--
-    <para>Apache is an extremely popular web server; using the
-      <command>mod_dav_svn</command> module, Apache can access a
-      repository and make it available to clients via the
+    <para>
+      <indexterm>
+        <primary>httpd</primary>
+      </indexterm>
+      <indexterm>
+        <primary>Apache HTTP Server</primary>
+        <see>httpd</see>
+      </indexterm>Apache HTTP Server (also known
+      as <command>httpd</command>) is an extremely popular web server;
+      using the <command>mod_dav_svn</command> module, Apache can
+      access a repository and make it available to clients via the
        WebDAV/DeltaV protocol, which is an extension of HTTP.  Because
        Apache is an extremely extensible server, it provides a number
        of features <quote>for free,</quote> such as encrypted SSL
@@ -80,32 +101,46 @@
        authentication systems, and limited built-in web browsing of
        repositories.</para>
  -->
-    <para>Apache ist ein sehr beliebter Webserver, welcher mittels des
-      <command>mod_dav_svn</command>-Moduls auf Projektarchive
-      zugreifen und diese für Clients verfügbar machen kann. Verwendet
-      wird dabei das WebDAV/DeltaV-Protokoll, welches eine Erweiterung
-      von HTTP ist.  Da Apache ein stark erweiterbarer Webserver ist,
-      bietet er eine Menge an <quote>frei verfügbaren</quote>
-      Funktionen/Modulen, wie mittels SSL verschlüsselte Verbindungen,
-      Protokollierung, sowie die Integration diverser
-      Authentifikationssysteme von Drittanbietern und einen
-      eingeschränkten Web-Browser-gestützten
+    <para>
+      <indexterm>
+        <primary>httpd</primary>
+      </indexterm>
+      <indexterm>
+        <primary>Apache HTTP Server</primary>
+        <see>httpd</see>
+      </indexterm>Apache HTTP Server (auch bekannt als
+      <command>httpd</command>) ist ein sehr beliebter Webserver,
+      welcher mittels des <command>mod_dav_svn</command>-Moduls auf
+      Projektarchive zugreifen und diese für Clients verfügbar machen
+      kann. Verwendet wird dabei das WebDAV/DeltaV-Protokoll, welches
+      eine Erweiterung von HTTP ist.  Da Apache ein stark
+      erweiterbarer Webserver ist, bietet er eine Menge an <quote>frei
+      verfügbaren</quote> Funktionen/Modulen, wie mittels SSL
+      verschlüsselte Verbindungen, Protokollierung, sowie die
+      Integration diverser Authentifikationssysteme von Drittanbietern
+      und einen eingeschränkten Web-Browser-gestützten
        Projektarchiv-Lesezugriff.</para>

  <!--
-    <para>In the other corner is <command>svnserve</command>: a small,
-      lightweight server program that speaks a custom protocol with
-      clients.  Because its protocol is explicitly designed for
-      Subversion and is stateful (unlike HTTP), it provides
-      significantly faster network operations—but at the cost of
-      some features as well.  While it can use SASL to provide a
-      variety of authentication and encryption options, it has no
-      logging or built-in web browsing.  It is, however, extremely
-      easy to set up and is often the best option for small teams just
-      starting out with Subversion.</para>
+    <para>
+      <indexterm>
+        <primary>svnserve</primary>
+      </indexterm>In the other corner is <command>svnserve</command>:
+      a small, lightweight server program that speaks a custom
+      protocol with clients.  Because its protocol is explicitly
+      designed for Subversion and is stateful (unlike HTTP), it
+      provides significantly faster network operations—but at
+      the cost of some features as well.  While it can use SASL to
+      provide a variety of authentication and encryption options, it
+      has no logging or built-in web browsing.  It is, however,
+      extremely easy to set up and is often the best option for small
+      teams just starting out with Subversion.</para>
  -->

-    <para>In der anderen Ecke befindet sich
+    <para>
+      <indexterm>
+        <primary>svnserve</primary>
+      </indexterm>In der anderen Ecke befindet sich
        <command>svnserve</command>: ein kleiner, leichtgewichtiger
        Server, der ein einfaches Netzwerkprotokoll für die Zugriffe der
        Clients verwendet. Da dieses Protokoll für die Verwendung mit
@@ -166,7 +201,7 @@

      <table id="svn.serverconfig.overview.tbl-1">
  <!--
-      <title>Comparison of subversion server options</title>
+      <title>Comparison of Subversion server options</title>
  -->
        <title>Vergleich der Serveroptionen für Subversion</title>
        <tgroup cols="4">
@@ -406,6 +441,7 @@
          </tbody>
        </tgroup>
      </table>
+
    </sect1>


@@ -446,6 +482,7 @@
        vielleicht <emphasis>gegen</emphasis> eine der Möglichkeiten
        sprechen.</para>

+    <!-- ===============================================================  
-->
      <sect2 id="svn.serverconfig.choosing.svnserve">

  <!--
@@ -630,6 +667,7 @@

      </sect2>

+    <!-- ===============================================================  
-->
      <sect2 id="svn.serverconfig.choosing.apache">

  <!--
@@ -932,7 +970,10 @@
  <!--
      <title>svnserve, a Custom Server</title>

-    <para>The <command>svnserve</command> program is a lightweight
+    <para>
+      <indexterm>
+        <primary>svnserve</primary>
+      </indexterm>The <command>svnserve</command> program is a lightweight
        server, capable of speaking to clients over TCP/IP using a
        custom, stateful protocol.  Clients contact an
        <command>svnserve</command> server by using URLs that begin with
@@ -945,7 +986,10 @@

      <title>svnserve, ein maßgefertigter Server</title>

-    <para>Das Programm <command>svnserve</command> ist ein
+    <para>
+      <indexterm>
+        <primary>svnserve</primary>
+      </indexterm>Das Programm <command>svnserve</command> ist ein
        leichtgewichtiger Server, welcher für die Kommunikation mit den
        Clients ein auf TCP/IP basierendes, zustandsorientiertes
        Protokoll verwendet. Um sich mit dem Server zu verbinden,
@@ -965,11 +1009,19 @@
        <title>Der Serverstart</title>

  <!--
-      <para>There are a few different ways to run the
+      <para>
+        <indexterm>
+          <primary>svnserve</primary>
+          <secondary>running</secondary>
+        </indexterm>There are a few different ways to run the
          <command>svnserve</command> program:</para>
  -->
-      <para>Es gibt mehrere Möglichkeiten, <command>svnserve</command>
-        zu starten:</para>
+      <para>
+        <indexterm>
+          <primary>svnserve</primary>
+          <secondary>betreiben</secondary>
+        </indexterm>Es gibt mehrere Möglichkeiten,
+        <command>svnserve</command> zu starten:</para>

        <itemizedlist>
          <listitem>
@@ -1033,13 +1085,24 @@
          <title>svnserve als Unix-Dienst</title>

  <!--
-        <para>The easiest option is to run <command>svnserve</command>
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>running</secondary>
+            <tertiary>daemon mode</tertiary>
+          </indexterm>The easiest option is to run  
<command>svnserve</command>
            as a standalone <quote>daemon</quote> process.  Use the
            <option>-d</option> option for this:</para>
  -->
-        <para>Die einfachste Variante ist, <command>svnserve</command>
-          als eigenständigen (Unix-)Dienst laufen zu lassen. Verwenden
-          Sie hierfür die <option>-d</option> Option beim Aufruf:
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>betreiben</secondary>
+            <tertiary>Daemon-Modus</tertiary>
+          </indexterm>Die einfachste Variante ist,
+          <command>svnserve</command> als eigenständigen (Unix-)Dienst
+          laufen zu lassen. Verwenden Sie hierfür die
+          <option>-d</option> Option beim Aufruf:
          </para>

  <!--
@@ -1136,7 +1199,15 @@
          <title>svnserve über inetd starten</title>

  <!--
-        <para>If you want <command>inetd</command> to launch the
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>running</secondary>
+            <tertiary>via inetd</tertiary>
+          </indexterm>
+          <indexterm>
+            <primary>inetd</primary>
+          </indexterm>If you want <command>inetd</command> to launch the
            process, you need to pass the <option>-i</option>
            (<option>- -inetd</option>) option.  In the following
            example, we've shown the output from running
@@ -1146,17 +1217,25 @@
            <command>inetd</command> to start
            <command>svnserve</command>.</para>
  -->
-        <para>Wenn Sie <command>inetd</command> zum Starten des
-          Prozesses verwenden wollen, so übergeben Sie
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>betreiben</secondary>
+            <tertiary>über inetd</tertiary>
+          </indexterm>
+          <indexterm>
+            <primary>inetd</primary>
+          </indexterm>Wenn Sie <command>inetd</command> zum Starten
+          des Prozesses verwenden wollen, so übergeben Sie
            <command>svnserve</command> beim Aufruf die Option
            <option>-i</option> (<option>--inetd</option>). Im folgenden
            Beispiel sehen wir die Ausgaben beim Aufruf von
-          <literal>svnserve -i</literal>
-          auf der Kommandozeile. Beachten Sie aber, dass dies nicht
-          der Weg ist, wie der Dienst normalerweise gestartet wird
-          – eine genaue Beschreibung, wie
-          <command>svnserve</command> über <command>inetd</command>
-          gestartet wird, folgt anschließend.</para>
+          <literal>svnserve -i</literal> auf der Kommandozeile.
+          Beachten Sie aber, dass dies nicht der Weg ist, wie der
+          Dienst normalerweise gestartet wird – eine genaue
+          Beschreibung, wie <command>svnserve</command> über
+          <command>inetd</command> gestartet wird, folgt
+          anschließend.</para>

          <informalexample>
            <screen>
@@ -1232,6 +1311,96 @@
            hinzufügen, um einzuschränken, welche Projektarchive
            exportiert werden dürfen.</para>

+      </sect3>
+
+      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
+      <sect3 id="svn.serverconfig.svnserve.invoking.xinetd">
+<!--
+        <title>svnserve via xinetd</title>
+-->
+        <title>svnserve über xinetd</title>
+
+<!--
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>running</secondary>
+            <tertiary>via xinetd</tertiary>
+          </indexterm>
+          <indexterm>
+            <primary>xinetd</primary>
+          </indexterm>Some operating systems provide the  
<command>xinetd</command>
+          daemon as an alternative to <command>inetd</command>.
+          Fortunately, you can configure <command>svnserve</command> for
+          use with <command>xinetd</command>, too.  To do so, you'll need  
to
+          create a configuration file  
<filename>/etc/xinetd.d/svn</filename>
+          with the following contents:</para>
+-->
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>betreiben</secondary>
+            <tertiary>über xinetd</tertiary>
+          </indexterm>
+          <indexterm>
+            <primary>xinetd</primary>
+          </indexterm>Einige Betriebssysteme stellen den Daemon
+          <command>xinetd</command> als Alternative zu
+          <command>inetd</command> zur Verfügung. Glücklicherweise
+          können Sie <command>svnserve</command> auch für die
+          Verwendung mit <command>xinetd</command> konfigurieren. Dazu
+          müssen Sie eine Konfigurationsdatei
+          <filename>/etc/xinetd.d/svn</filename> mit dem folgenden
+          Inhalt anlegen:</para>
+
+        <informalexample>
+          <programlisting>
+# default: on<!--
+# description: Subversion server for the svn protocol
+-->
+# description: Subversion server for the svn protocol
+service svn
+{
+  disabled        = no
+  port            = 3690
+  socket_type     = stream
+  protocol        = tcp
+  wait            = no
+  user            = subversion
+  server          = /usr/local/bin/svnserve
+  server_args     = -i -r <replaceable>/path/to/repositories</replaceable>
+}
+</programlisting>
+        </informalexample>
+
+<!--
+        <para>Be sure that your <filename>/etc/services</filename>
+          configuration file contains the definition of the port used
+          for the <literal>svn</literal> protocol (as described in
+          <xref linkend="svn.serverconfig.svnserve.invoking.xinetd"
+          />), otherwise the daemon will not start correctly.</para>
+-->
+        <para>Stellen Sie sicher, dass Ihre Konfigurationsdatei
+          <filename>/etc/services</filename> die Definition für den
+          Port beinhaltet, der für das Protokoll
+          <literal>svn</literal> verwendet wird (wie in
+          <xref linkend="svn.serverconfig.svnserve.invoking.xinetd"
+          /> beschrieben), da der Daemon ansonsten nicht korrekt
+          startet.</para>
+
+<!--
+        <para>In Redhat-based distributions, you then need to activate
+          the new service using <command>chkconfig - -add
+          svn</command>.  After doing so, you will be able to enable
+          and disable the server using the graphical configuration
+          tools.</para>
+-->
+        <para>In Redhat-basierten Distributionen müssen Sie den neuen
+          Dienst mit <command>chkconfig --add svn</command>
+          aktivieren. Anschließend können Sie den Server unter
+          Verwendung der graphischen Konfigurations-Werkzeuge ein- und
+          ausschalten.</para>
+
        </sect3>

        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
@@ -1242,7 +1411,12 @@
          <title>svnserve über einen Tunnel</title>

  <!--
-        <para>Another way to invoke <command>svnserve</command> is in
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>running</secondary>
+            <tertiary>tunnel mode</tertiary>
+          </indexterm>Another way to invoke <command>svnserve</command> is  
in
            tunnel mode, using the <option>-t</option> option.  This
            mode assumes that a remote-service program such as
            <command>rsh</command> or <command>ssh</command> has
@@ -1263,7 +1437,12 @@
            It's essentially the same as a local user accessing the
            repository via <literal>file://</literal> URLs.</para>
  -->
-        <para>Eine weitere Möglichkeit ist,
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>betreiben</secondary>
+            <tertiary>Tunnel-Modus</tertiary>
+          </indexterm>Eine weitere Möglichkeit ist,
            <command>svnserve</command> mittels der
            <option>-t</option>-Option im Tunnel-Modus aufzurufen.  Bei
            diesem Aufruf wird vorausgesetzt, dass ein anderes Programm
@@ -1308,7 +1487,12 @@
          <title>svnserve als ein Dienst unter Windows</title>

  <!--
-        <para>If your Windows system is a descendant of Windows NT
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>running</secondary>
+            <tertiary>as Windows service</tertiary>
+          </indexterm>If your Windows system is a descendant of Windows NT
            (Windows 2000 or newer), you can
            run <command>svnserve</command> as a standard Windows
            service.  This is typically a much nicer experience than
@@ -1321,9 +1505,14 @@
            started and stopped using the same consistent administration
            interface as other Windows services.</para>
  -->
-        <para>Gehört ihr Windows zur NT-Familie (Windows oder neuer),
-          so können Sie <command>svnserve</command> auch als normalen
-          Windows-Dienst laufen lassen. Dies ist wesentlich
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>betreiben</secondary>
+            <tertiary>als Windows-Dienst</tertiary>
+          </indexterm>Gehört ihr Windows zur NT-Familie (Windows oder
+          neuer), so können Sie <command>svnserve</command> auch als
+          normalen Windows-Dienst laufen lassen. Dies ist wesentlich
            sinnvoller, als die Option <option>--daemon</option>
            (<option>-d</option>) zu verwenden und ihn als
            selbstständigen Dienst zu betreiben. Sie müssten dann immer
@@ -1485,14 +1674,30 @@
          <title>svnserve als ein launchd-Job</title>

  <!--
-        <para>Mac OS X (10.4 and higher) uses <command>launchd</command>
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>running</secondary>
+            <tertiary>via launchd</tertiary>
+          </indexterm>
+          <indexterm>
+            <primary>launchd</primary>
+          </indexterm>Mac OS X (10.4 and higher) uses  
<command>launchd</command>
            to manage processes (including daemons) both system-wide and
            per-user.  A <command>launchd</command> job is specified by
            parameters in an XML property list file, and
            the <command>launchctl</command> command is used to manage
            the lifecycle of those jobs.</para>
  -->
-        <para>Mac OS X (10.4 und höher) verwendet
+        <para>
+          <indexterm>
+            <primary>svnserve</primary>
+            <secondary>betreiben</secondary>
+            <tertiary>uber launchd</tertiary>
+          </indexterm>
+          <indexterm>
+            <primary>launchd</primary>
+          </indexterm>Mac OS X (10.4 und höher) verwendet
            <command>launchd</command> zur Prozessverwaltung
            (einschließlich Dämonen) sowohl systemweit als auch pro
            Anwender. Ein <command>launchd</command>-Job wird durch
@@ -1699,10 +1904,26 @@
        <title>Integrierte Authentifizierung und Autorisierung</title>

  <!--
-      <para>When a client connects to an <command>svnserve</command>
+      <para>
+        <indexterm>
+          <primary>svnserve</primary>
+          <secondary>authentication</secondary>
+        </indexterm>
+        <indexterm>
+          <primary>svnserve</primary>
+          <secondary>authorization</secondary>
+        </indexterm>When a client connects to an  
<command>svnserve</command>
          process, the following things happen:</para>
  -->
-      <para>Wenn sich ein Subversion-Client mit einem
+      <para>
+        <indexterm>
+          <primary>svnserve</primary>
+          <secondary>Authentifizierung</secondary>
+        </indexterm>
+        <indexterm>
+          <primary>svnserve</primary>
+          <secondary>Autorisierung</secondary>
+        </indexterm>Wenn sich ein Subversion-Client mit einem
          <command>svnserve</command>-Prozess verbindet, geschieht
          folgendes:</para>

@@ -2153,9 +2374,9 @@
      <!-- ===============================================================  
-->
      <sect2 id="svn.serverconfig.svnserve.sasl">
  <!--
-      <title>Using <command>svnserve</command> with SASL</title>
+      <title>Using svnserve with SASL</title>
  -->
-      <title><command>svnserve</command> mit SASL verwenden</title>
+      <title>svnserve mit SASL verwenden</title>

  <!--
        <para>For many teams, the built-in CRAM-MD5 authentication is
@@ -2708,9 +2929,13 @@
          simply setting <literal>auth-access = read</literal>
          or <literal>auth-access = none</literal>.<footnote><para>Note
          that using any sort of <command>svnserve</command>-enforced
-        access control at all is a bit pointless; the user already has
-        direct access to the repository
-        database.</para></footnote></para>
+        access control at all only makes sense if the users cannot
+        bypass it and access the repository directory directly using
+        other tools (such as <command>cd</command> and
+        <command>vi</command>); implementing
+        such restrictions is described in
+        <xref linkend="svn.serverconfig.svnserve.sshtricks.fixedcmd"
+        />.</para></footnote></para>
  -->
        <para>Bei der Verwendung eines Tunnels wird die Autorisierung
          größtenteils durch die Betriebssystem-Berechtigungen auf die
@@ -2727,9 +2952,14 @@
          read</literal> oder <literal>auth-access = none</literal>
          setzen.<footnote><para>Beachten Sie, dass die Verwendung
          irgendwelcher durch <command>svnserve</command>
-        sichergestellten Zugriffskontrollen sinnlos ist, da der
-        Anwender ohnehin direkten Zugriff auf die
-        Projektarchiv-Datenbank hat.</para></footnote></para>
+        sichergestellten Zugriffskontrollen nur dann einen Sinn
+        ergibt, fall die Anwender sie nicht umgehen und unter
+        Verwendung anderer Werkzeuge (etwa <command>cd</command> und
+        <command>vi</command>) direkt auf das
+        Projektarchiv-Verzeichnis zugreifen können; die Einrichtung
+        derartiger Einschränkungen wird in
+        <xref linkend="svn.serverconfig.svnserve.sshtricks.fixedcmd"
+        /> beschrieben.</para></footnote></para>

  <!--
        <para>You'd think that the story of SSH tunneling would end
@@ -3170,7 +3400,7 @@
        excellent documentation, publicly available on their web site at
        <ulink url="http://httpd.apache.org"/>.  For example, a general
        reference for the configuration directives is located at
-      <ulink url="http://httpd.apache.org/docs-2.0/mod/directives.html"
+      <ulink url="http://httpd.apache.org/docs/current/mod/directives.html"
        />.</para>
  -->
      <para>Viele der folgenden Erläuterungen beziehen sich auf
@@ -3181,7 +3411,7 @@
        Web-Seite <ulink url="http://httpd.apache.org"/> frei verfügbar
        ist. So befindet sich beispielsweise eine allgemeine Referenz
        der Konfigurationsdirektiven unter
-      <ulink url="http://httpd.apache.org/docs-2.0/mod/directives.html"
+      <ulink url="http://httpd.apache.org/docs/current/mod/directives.html"
        />.</para>

  <!--
@@ -3767,6 +3997,7 @@
            Konfiguration Ihres Servers mit SSL-Verschlüsselung, die
            eine zusätzliche Sicherheitsschicht bietet.</para>
        </tip>
+
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
        <sect3 id="svn.serverconfig.httpd.authn.basic">
  <!--
@@ -3851,19 +4082,58 @@
          </informalexample>

  <!--
-        <para>Next, add some more directives inside the
-          <literal><Location></literal> block to tell Apache how
-          to use the password file:</para>
+        <para>Next, ensure that Apache has access to the modules which
+          provide the Basic authentication and related
+          functionality:  <literal>mod_auth_basic</literal>,
+          <literal>mod_authn_file</literal>, and
+          <literal>mod_authz_user</literal>.  In many cases, these
+          modules are compiled into <command>httpd</command> itself,
+          but if not, you might need to explicitly load one or more of
+          them using the <literal>LoadModule</literal> directive:</para>
  -->
+        <para>Stellen Sie als nächstes sicher, dass Apache Zugriff auf
+          die Module hat, die die einfache Authentifizierung und
+          damit zusammenhängende Funktionalität liefern:
+          <literal>mod_auth_basic</literal>,
+          <literal>mod_authn_file</literal> und
+          <literal>mod_authz_user</literal>. Vielfach sind diese
+          Module in <command>httpd</command> selbst hineinkompiliert
+          worden, aber falls nicht, könnte es sein, dass Sie explizit
+          eins oder mehrere von ihnen mit der Direktive
+          <literal>LoadModule</literal> laden müssen:</para>
+
+        <informalexample>
+          <programlisting>
+LoadModule auth_basic_module   modules/mod_auth_basic.so
+LoadModule authn_file_module   modules/mod_authn_file.so
+LoadModule authz_user_module   moduels/mod_authz_user.so
+</programlisting>
+        </informalexample>
+
+<!--
+        <para>After ensuring the Apache has access to the required
+          functionality, you'll need to add some more directives
+          inside the <literal><Location></literal> block to tell
+          Apache what type of authentication you wish to use, and just
+          how to to so:</para>
+-->
+        <para>Nachdem sichergestellt ist, dass Apache Zugriff auf die
+          benötigte Funktionalität hat, müssen Sie noch ein paar
+          Direktiven innerhalb des Blocks
+          <literal><Location></literal> hinzufügen, um
+          Apache mitzuteilen, welche Art der Authentisierung Sie
+          verwenden möchten, und wie das gemacht werden soll:</para>

          <informalexample>
            <programlisting>
  <Location /svn>
    DAV svn
    SVNParentPath /var/svn
+
    # Authentication: Basic
    AuthName "Subversion repository"
    AuthType Basic
+  AuthBasicProvider file
    AuthUserFile /etc/svn-auth.htpasswd
  </Location>
  </programlisting>
@@ -3898,6 +4168,19 @@
            </listitem>
            <listitem>
  <!--
+            <para><literal>AuthBasicProvider</literal> specifies the
+              Basic authentication provider to use for the location.
+              In our example, we wish to consult a local password
+              file.</para>
+-->
+            <para><literal>AuthBasicProvider</literal> gibt den
+              Anbieter für die einfache Authentifizierung an, der für
+              den Ort verwendet werden soll. In unserem Beispiel
+              möchten wir in einer lokalen Datei mit Passwörtern
+              nachsehen.</para>
+          </listitem>
+          <listitem>
+<!--
              <para><literal>AuthUserFile</literal> specifies the
                location of the password file to use.</para>
  -->
@@ -3925,8 +4208,8 @@
            Anwendernamen und das Passwort vom Subversion-Client
            besorgen soll, <emphasis>falls</emphasis> eine Autorisierung
            benötigt wird. (Wenn eine Autorisierung erforderlich ist,
-          benötigt Apache auch eine Authentifikation.) Was hier jedoch noch
-          fehlt, sind Direktiven, die Apache sagen,
+          benötigt Apache auch eine Authentifizierung.) Was hier
+          jedoch noch fehlt, sind Direktiven, die Apache sagen,
            <emphasis>welche Arten</emphasis> von Client-Anfragen eine
            Autorisierung erfordern; momentan sind das keine.
            Das Einfachste ist es, anzugeben, dass
@@ -3944,6 +4227,7 @@
    # Authentication: Basic
    AuthName "Subversion repository"
    AuthType Basic
+  AuthBasicProvider file
    AuthUserFile /etc/svn-auth.htpasswd

    # Authorization: Authenticated users only
@@ -3962,6 +4246,28 @@
            festzulegen, sehen Sie unter
            <xref linkend="svn.serverconfig.httpd.authz"/> nach.</para>

+        <note>
+<!--
+          <para>The default value of the
+            <literal>AuthBasicProvider</literal> option is
+            <literal>file</literal>, so we won't bother including
+            it in future examples.  Just know that if in a broader
+            context you've set this value to something else, you'll
+            need to explicitly reset it to <literal>file</literal>
+            within your Subversion <literal><Location></literal>
+            block in order to get that behavior.</para>
+-->
+          <para>Der Standardwert für die Option
+            <literal>AuthBasicProvider</literal> ist
+            <literal>file</literal>, also werden wir es in künftigen
+            Beispielen nicht anführen. Sie sollten sich aber bewusst
+            sein, dass, wenn Sie diesen Wert in einem erweiterten
+            Kontext auf etwas anderes gesetzt haben, ihn ausdrücklich
+            wieder auf <literal>file</literal> in Ihrem
+            <literal><Location></literal>-Block zurücksetzen
+            müssen, falls Sie dieses Verhalten wünschen.</para>
+        </note>
+
        </sect3>

        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
@@ -3992,13 +4298,18 @@

  <!--
          <para>Configuring Apache to use Digest authentication is
-          straightforward, with only small variations on our prior
-          example:</para>
+          straightforward.  You'll need to ensure that
+          the <literal>mod_auth_digest</literal> module is available
+          (instead of <literal>mod_auth_basic</literal>), and then
+          make a few small variations on our prior example:</para>
  -->
          <para>Die Konfigurierung von Apache für die
-          Digest-Authentifizierung ist unkompliziert und nur eine
-          kleine Abweichung von unserem vorangegangenen
-          Beispiel:</para>
+          Digest-Authentifizierung ist unkompliziert. Sie müssen
+          sicher stellen, dass das Modul
+          <literal>mod_auth_digest</literal> (statt
+          <literal>mod_auth_basic</literal>) verfügbar ist, und dann
+          nur noch ein wenig von unserem vorangegangenen
+          Beispiel abweichen:</para>

          <informalexample>
            <programlisting>
@@ -4009,6 +4320,7 @@
    # Authentication: Digest
    AuthName "Subversion repository"
    AuthType Digest
+  AuthDigestProvider file
    AuthUserFile /etc/svn-auth.htdigest

    # Authorization: Authenticated users only
@@ -4021,31 +4333,57 @@
          <para>Notice that <literal>AuthType</literal> is now set to
            <literal>Digest</literal>, and we specify a different path
            for <literal>AuthUserFile</literal>.  Digest authentication
-          uses a different file format than Basic authentication; it
-          is created using Apache's <command>htdigest</command>
+          uses a different file format than Basic authentication,
+          created and managed using Apache's <command>htdigest</command>
            utility<footnote><para>See
            <ulink  
url="http://httpd.apache.org/docs/current/programs/htdigest.html"
-          />.</para></footnote> rather
-          than <command>htpasswd</command>.  Digest authentication
-          also has the additional concept of a
+          />.</para></footnote> rather than <command>htpasswd</command>.
+          Digest authentication also has the additional concept of a
            <quote>realm</quote>, which must match the value of the
-          <literal>AuthName</literal> directive.  The password file
-          can be created as follows:</para>
+          <literal>AuthName</literal> directive.</para>
  -->
          <para>Beachten Sie, dass <literal>AuthType</literal> nun auf
            <literal>Digest</literal> gesetzt ist, und wir einen
            unterschiedlichen Pfad für <literal>AuthUserFile</literal>
            angegeben haben. Digest-Authentifizierung verwendet ein
-          unterschiedliches Dateiformat als Basic-Authentifizierung;
-          es wird mit Apaches Dienstprogramm
-          <command>htdigest</command> erzeugt<footnote><para>Siehe
+          unterschiedliches Dateiformat als einfache
+          Authentifizierung, erzeugt und verwaltet
+          mit Apaches Dienstprogramm <command>htdigest</command>
+          <footnote><para>Siehe
            <ulink  
url="http://httpd.apache.org/docs/current/programs/htdigest.html"
            />.</para></footnote> statt mit <command>htpasswd</command>.
            Digest-Authentifizierung besitzt auch das zusätzliche
-          Konzept eines Bereichs, <quote>realm</quote>, der dem Wert
-          der Direktive <literal>AuthName</literal> entsprechen muss.
-          Die Passwortdatei kann wie folgt erzeugt werden:</para>
+          Konzept eines Bereichs,
+          <foreignphrase>realm</foreignphrase>, der dem Wert der
+          Direktive <literal>AuthName</literal> entsprechen
+          muss.</para>

+        <note>
+<!--
+          <para>For digest authentication, the authentication provider
+            is selected using the <literal>AuthDigestProvider</literal>
+            as shown in the previous example.  As was the case with
+            the <literal>AuthBasicProvider</literal> directive,
+            <literal>file</literal> is the default value of the
+            <literal>AuthDigestProvider</literal> option, so this
+            line is not strictly required unless you need to override
+            a different value thereof inherited from a broader
+            configuration context.</para>
+-->
+          <para>Für die Digest-Authentifizierung wird der Anbieter mit
+            der Direkive <literal>AuthDigestProvider</literal>
+            ausgewählt, wie im vorangegangenen Beispiel gezeigt. Wie
+            bei der Direktive <literal>AuthBasicProvider</literal>,
+            ist auch hier <literal>file</literal> der Standardwert der
+            Option <literal>AuthDigestProvider</literal> option, so
+            dass diese Zeile nicht unbedingt notwendig ist, es sei
+            denn, Sie müssen einen aus einem weiteren
+            Konfigurations-Kontext ererbten unterschiedlichen Wert
+            angeben.</para>
+        </note>
+
+        <para>The password file can be created as follows:</para>
+
  <!--
          <informalexample>
            <screen>
@@ -4174,9 +4512,9 @@

  <!--
          <para>Sometimes you don't need to run such a tight ship.  For
-          example, Subversion's own source code repository at
-          <ulink url="http://svn.collab.net/repos/svn"/> allows anyone
-          in the world to perform read-only repository tasks (such as
+          example, the server hosting Subversion's own source code at
+          <ulink url="https://svn.apache.org/repos/asf/subversion/"/>  
allows
+          anyone in the world to perform read-only repository tasks (such  
as
            checking out working copies and browsing the repository),
            but restricts write operations to authenticated users.  The
            <literal>Limit</literal> and <literal>LimitExcept</literal>
@@ -4187,17 +4525,17 @@
            block.</para>
  -->
          <para>Manchmal müssen Sie gar nicht so ein strenges Regiment
-          führen. So erlaubt beispielsweise das eigene Projektarchiv
-          von Subversion unter
-          <ulink url="http://svn.collab.net/repos/svn"/> allen auf der
-          Welt lesende Operationen (wie etwa das Auschecken von
-          Arbeitskopien und das Stöbern im Projektarchiv),
-          beschränkt jedoch Schreiboperationen auf authentifizierte
-          Nutzer. Die Direktiven <literal>Limit</literal> und
-          <literal>LimitExcept</literal> erlauben diese Art der
-          selektiven Einschränkung. Ähnlich der Direktive
-          <literal>Location</literal> haben diese Blöcke Start- und
-          Ende-Tags, die Sie innerhalb Ihres
+          führen. So erlaubt beispielsweise der Server, der das eigene
+          Projektarchiv von Subversion unter
+          <ulink url="http://svn.collab.net/repos/svn"/> beherbergt,
+          allen auf der Welt lesende Operationen (wie etwa das
+          Auschecken von Arbeitskopien und das Stöbern im
+          Projektarchiv), beschränkt jedoch Schreiboperationen auf
+          authentifizierte Nutzer. Die Direktiven
+          <literal>Limit</literal> und <literal>LimitExcept</literal>
+          erlauben diese Art der selektiven Einschränkung. Ähnlich der
+          Direktive <literal>Location</literal> haben diese Blöcke
+          Start- und Ende-Tags, die Sie innerhalb Ihres
            <literal><Location></literal>-Blocks
            unterbringen.</para>

@@ -4652,8 +4990,7 @@
            you can disable all of this path checking.  In your
            <filename>httpd.conf</filename> file, use the
            <literal>SVNPathAuthz</literal> directive as shown in
-          <xref linkend="svn.serverconfig.httpd.authz.pathauthzoff.ex-1"/>.
-        </para>
+          <xref  
linkend="svn.serverconfig.httpd.authz.pathauthzoff.ex-1"/>.</para>
  -->
          <para>Auf der anderen Seite gibt es auch eine Art Notausgang,
            der es Ihnen erlaubt, Sicherheitsmerkmale gegen
@@ -4757,12 +5094,15 @@
          <para>It's beyond the scope of this book to describe how to
            generate client and server SSL certificates and how to
            configure Apache to use them.  Many other references,
-          including Apache's own documentation, describe the  
process.</para>
+          including Apache's own documentation (<ulink
+          url="http://httpd.apache.org/docs/current/ssl/"/>),
+          describe the process.</para>
  -->
          <para>Es würde den Rahmen dieses Buches sprengen, wenn
            beschrieben würde, wie SSL Client- und Server-Zertifikate erzeugt
            werden und wie Apache für ihre Verwendung konfiguriert wird.
-          Viele andere Bücher, darunter Apaches eigene Dokumentation,
+          Viele andere Bücher, darunter Apaches eigene Dokumentation
+          (<ulink url="http://httpd.apache.org/docs/current/ssl/"/>),
            erläutern diese Aufgabe.</para>

          <tip>
@@ -4773,7 +5113,8 @@
              tool such as OpenSSL (<ulink url="http://openssl.org"
              />).<footnote><para>While self-signed certificates are
              still vulnerable to a <quote>man-in-the-middle</quote>
-            attack, such an attack is much more difficult for a casual
+            attack (before a client sees the certificate for the first
+            time), such an attack is much more difficult for a casual
              observer to pull off, compared to sniffing unprotected
              passwords.</para></footnote></para>
  -->
@@ -4781,12 +5122,14 @@
              der Regel kostenpflichtig, doch können Sie als
              Minimallösung Apache so konfigurieren, das er ein
              selbstgezeichnetes Zertifikat verwendet, dass durch ein
-            Werkzeug wie etwa OpenSSL erzeugt wurde
-            (<ulink url="http://openssl.org" />).<footnote><para>Obgleich
-            selbstgezeichnete Zertifikate anfällig für
-            <quote>Man-in-the-Middle</quote>-Angriffe sind, ist ein
-            solcher Angriff schwieriger für einen laienhaften
-            Beobachter durchzuführen als ungeschützte Passwörter
+            Werkzeug wie etwa OpenSSL erzeugt wurde
+            (<ulink url="http://openssl.org"
+            />).<footnote><para>Obgleich selbstgezeichnete
+            Zertifikate anfällig für
+            <quote>Man-in-the-Middle</quote>-Angriffe sind (bevor ein
+            Client das Zertifikat erstmalig sieht), ist ein solcher
+            Angriff schwieriger für einen laienhaften Beobachter
+            durchzuführen als ungeschützte Passwörter
              abzuschnorcheln.</para></footnote></para>
          </tip>

@@ -5063,6 +5406,196 @@
        </sect3>
      </sect2>

+    <!-- ===============================================================  
-->
+    <sect2 id="svn.serverconfig.httpd.perf">
+<!--
+      <title>Tuning for Performance</title>
+-->
+      <title>Auf Leistung abstimmen</title>
+
+<!--
+      <para>The Apache HTTP Server is built for performance, but you
+        can improve upon its default configuration to get even better
+        results out of your Subversion service offering.  In this
+        section, we'll recommend some specific configuration changes
+        to consider.  Understand, however, that some of
+        the <filename>httpd.conf</filename> configuration options
+        we'll be discussing herein affect the general behavior of your
+        server, not merely the Subversion service.  As such, you need
+        to consider the full breadth of your HTTP service offering to
+        discern how modifications to these settings for Subversion's
+        sake may affect your other services.</para>
+-->
+      <para>Der Apache HTTP-Server ist zwar für Leistungsfähigkeit
+        gebaut worden, jedoch können Sie seine Standard-Konfiguration
+        verbessern, um noch bessere Ergebnisse beim Anbieten Ihrer
+        Subversion-Dienste zu erhalten. In diesem Abschnitt empfehlen
+        wir einige zielgerichtete Konfigurations-Änderungen zu
+        erwägen. Seien Sie sich jecoch bewusst, das einige der hier
+        erörterten Konfigurations-Optionen von
+        <filename>httpd.conf</filename> Auswirkungen auf das
+        allgemeine Verhalten Ihres Servers haben, nicht bloß für den
+        Subversion-Dienst. Insofern müssen Sie die gesamte Breite
+        Ihrer HTTP-Dienste berücksichtigen, um festzustellen, welche
+        Auswirkungen Änderungen an diesen Einstellungen wegen
+        Subversion auf Ihre anderen Dienste haben werden.</para>
+
+      <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  
-->
+      <sect3 id="svn.serverconfig.httpd.perf.keepalive">
+        <title>KeepAlive</title>
+
+<!--
+        <para>By default, the Apache HTTP Server is configured to
+          enable the re-use of a single server connection for multiple
+          requests.  That's very beneficial for Subversion, because
+          unlike many HTTP-based applications, Subversion can very
+          quickly generate hundreds or thousands of requests against
+          the server for a single operation, and the cost of opening a
+          new connection to the server is non-trivial.  Subversion
+          wants to squeeze as many requests as possible out of a
+          single connection before that connection is terminated by
+          the server.  The <literal>KeepAlive</literal> directive is the
+          boolean flag which enables or disables this connection
+          re-use facility, and as we indicated previously, by default
+          its value is <literal>On</literal>.</para>
+-->
+        <para>Standardmäßig ist der Apache HTTP Server so eingestellt,
+          dass er es erlaubt, eine einzelne Verbindung zum Server für
+          mehrere Anfragen wiederzuverwenden. Für Subversion ist das
+          sehr vorteilhaft, da, anders als bei vielen HTTP=basierten
+          Anwendungen, Subversion schnell für eine einzelne Operation
+          hunderte oder tausende von Anfragen an einen Server erzeugen
+          kann, und die Kosten beim Öffnen einer neuen Verbindung zum
+          Server nicht trivial sind. Subversion versucht, so viele
+          Anfragen wie möglich aus einer Verbindung herauszuquetschen,
+          bevor der Server sie beendet. Die Direktive
+          <literal>KeepAlive</literal> ist der boolsche Schalter, der
+          diese Möglichkeit zur Wiederverwendung einer Verbbindung
+          ermöglicht oder unterbindet. Wie bereits erwähnt ist deren
+          Wert standardmäßig <literal>On</literal>.</para>
+
+<!--
+        <para>But there's another directive which limits the number of
+          requests a client is allowed to submit on a single
+          connection:  the <literal>MaxKeepAliveRequests</literal>
+          directive.  The default value for that option
+          is <literal>100</literal>.  This was probably sufficient for
+          older versions of Subversion, but Subversion 1.8 employs a
+          different HTTP communications library (called Serf) which
+          prefers to pipeline several smaller requests for specific bits
+          of information rather than asking the server to transmit
+          huge chunks of data in a single response.  We recommend that
***The diff for this file has been truncated for email.***


More information about the svnbook-dev mailing list