mirror of
				https://github.com/apache/httpd.git
				synced 2025-11-03 17:53:20 +03:00 
			
		
		
		
	git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1414104 13f79535-47bb-0310-9956-ffa450edef68
		
			
				
	
	
		
			195 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			195 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
<?xml version="1.0"?>
 | 
						||
<!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
 | 
						||
<?xml-stylesheet type="text/xsl" href="../style/manual.tr.xsl"?>
 | 
						||
<!-- English Revision: 1174747:1414094 (outdated) -->
 | 
						||
<!-- =====================================================
 | 
						||
 Translated by: Nilgün Belma Bugüner <nilgun belgeler.org>
 | 
						||
   Reviewed by: Orhan Berent <berent belgeler.org>
 | 
						||
========================================================== -->
 | 
						||
 | 
						||
<!--
 | 
						||
 Licensed to the Apache Software Foundation (ASF) under one or more
 | 
						||
 contributor license agreements.  See the NOTICE file distributed with
 | 
						||
 this work for additional information regarding copyright ownership.
 | 
						||
 The ASF licenses this file to You under the Apache License, Version 2.0
 | 
						||
 (the "License"); you may not use this file except in compliance with
 | 
						||
 the License.  You may obtain a copy of the License at
 | 
						||
 | 
						||
     http://www.apache.org/licenses/LICENSE-2.0
 | 
						||
 | 
						||
 Unless required by applicable law or agreed to in writing, software
 | 
						||
 distributed under the License is distributed on an "AS IS" BASIS,
 | 
						||
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
						||
 See the License for the specific language governing permissions and
 | 
						||
 limitations under the License.
 | 
						||
-->
 | 
						||
 | 
						||
<modulesynopsis metafile="worker.xml.meta">
 | 
						||
<name>worker</name>
 | 
						||
<description>Çok evreli ve çok süreçli melez bir HTTP sunucusu oluşturan çok
 | 
						||
süreçlilik modülü.</description>
 | 
						||
<status>MPM</status>
 | 
						||
<sourcefile>worker.c</sourcefile>
 | 
						||
<identifier>mpm_worker_module</identifier>
 | 
						||
 | 
						||
<summary>
 | 
						||
    <p>Bu çok süreçlilik modülü (MPM) hem çok süreçli hem de çok evreli
 | 
						||
      olabilen melez bir sunucu oluşturur. İstekleri sunmak için evreleri
 | 
						||
      kullanması sebebiyle çok süreçli bir sunucudan daha az sistem kaynağı
 | 
						||
      harcayarak daha çok isteğe hizmet sunabilir. Bununla birlikte, herbiri
 | 
						||
      çok sayıda evreye sahip çok sayıda süreci canlı tutarak bir çok süreçli
 | 
						||
      sunucu kadar kararlı olur.</p>
 | 
						||
 | 
						||
    <p>Bu MPM’i denetim altında tutmakta kullanılan en önemli yönergeler, her
 | 
						||
      çocuk süreç için konuşlandırılacak evre sayısını belirleyen <directive
 | 
						||
      module="mpm_common">ThreadsPerChild</directive> yönergesi ile devreye
 | 
						||
      sokulacak toplam evre sayısının azamisini belirleyen <directive
 | 
						||
      module="mpm_common">MaxRequestWorkers</directive> yönergesidir.</p>
 | 
						||
</summary>
 | 
						||
<seealso><a href="../bind.html">Apache HTTP Sunucusunun kullandığı adres ve
 | 
						||
  portların ayarlanması</a></seealso>
 | 
						||
 | 
						||
<section id="how-it-works"><title>Nasıl çalışır?</title>
 | 
						||
    <p>Çocuk süreçleri devreye almaktan tek bir süreç (ana süreç) sorumludur.
 | 
						||
      Her çocuk süreç <directive module="mpm_common"
 | 
						||
      >ThreadsPerChild</directive> yönergesinde belirtilen sayıda evre
 | 
						||
      konuşlandırır. Bunlardan ayrı olarak, bir dinleyici evre bağlantıları
 | 
						||
      dinleyip gelenleri işlenmek üzere bu sunucu evrelerinden birine
 | 
						||
      aktarır.</p>
 | 
						||
 | 
						||
    <p>Apache HTTP Sunucusu daima, gelen isteklere hizmet sunmaya hazır
 | 
						||
      <dfn>yedek</dfn>
 | 
						||
      veya boştaki sunucu evrelerinden oluşan bir havuzu canlı tutmaya
 | 
						||
      çalışır. Bu suretle, istemcilere isteklerinin sunulması için yeni çocuk
 | 
						||
      süreçlerin çatallanmasını, dolayısıyla yeni evrelerin
 | 
						||
      konuşlandırılmasını beklemek gerekmez. Başlangıçta çalıştırılacak çocuk
 | 
						||
      süreçlerin sayısı <directive
 | 
						||
      module="mpm_common">StartServers</directive> yönergesinde belirtilir.
 | 
						||
      Apache httpd, çalışma süresi boyunca <directive module="mpm_common"
 | 
						||
      >MinSpareThreads</directive> ve <directive module="mpm_common"
 | 
						||
      >MaxSpareThreads</directive> yönergeleri ile belirtilen sınırlar
 | 
						||
      dahilinde kalmak üzere gerektiğinde süreçleri öldürerek gerektiğinde
 | 
						||
      yenilerini devreye alarak tüm süreçlerdeki toplam evre sayısını sabit
 | 
						||
      tutmaya çalışır. Bu işlem kendiliğinden çok iyi yürüdüğünden bu
 | 
						||
      yönergelere öntanımlı değerlerinden farklı değerlerin atanması nadiren
 | 
						||
      gerekli olur. Aynı anda hizmet sunulabilecek istemcilerin sayısı (yani,
 | 
						||
      tüm süreçlerin toplam evre sayısı) <directive module="mpm_common"
 | 
						||
      >MaxRequestWorkers</directive> yönergesi ile belirlenir. Etkin çocuk
 | 
						||
      süreçlerin sayısı ise <directive module="mpm_common"
 | 
						||
      >MaxRequestWorkers</directive> yönergesindeki değerin <directive
 | 
						||
      module="mpm_common" >ThreadsPerChild</directive> yönergesindeki değere
 | 
						||
      bölünmesi ile elde edilir.</p>
 | 
						||
 | 
						||
    <p>Bu iki yönerge aynı anda etkin olabilecek çocuk süreçlerin ve her
 | 
						||
      çocuk süreçteki sunucu evreleri sayısının üst sınırını belirler ve bu
 | 
						||
      sınır sadece ana sunucu tamamen durdurulup yeniden başlatılarak
 | 
						||
      değiştirilebilir. <directive module="mpm_common"
 | 
						||
      >ServerLimit</directive> yönergesinin değeri etkin çocuk süreç
 | 
						||
      sayısının üst sınırı olup <directive module="mpm_common"
 | 
						||
      >MaxRequestWorkers</directive> yönergesindeki değerin <directive
 | 
						||
      module="mpm_common" >ThreadsPerChild</directive> yönergesindeki değere
 | 
						||
      bölünmesi ile elde değere eşit veya bundan küçük olması gerekir.
 | 
						||
      <directive module="mpm_common">ThreadLimit</directive> yönergesinin
 | 
						||
      değeri ise sunucu evreleri sayısının üst sınırını belirler ve <directive
 | 
						||
      module="mpm_common">ThreadsPerChild</directive> yönergesindeki değerden
 | 
						||
      büyük veya ona eşit olması gerekir.</p>
 | 
						||
 | 
						||
    <p>Sonlandırma sırasında etkin çocuk süreçlere ek olarak mevcut istemci
 | 
						||
      bağlantılarını işleme sokmaya çalışan tek bir sunucu evresinden başka
 | 
						||
      fazladan bir çocuk süreç etkin kalabileceği gibi sonlandırılacak süreç
 | 
						||
      sayısının en fazla <directive module="mpm_common"
 | 
						||
      >MaxRequestWorkers</directive> olması gerekirse de gerçekte sayı bundan
 | 
						||
      küçük olabilir.  Şöyle bir işlemle tek bir çocuk sürecin sonlandırılması
 | 
						||
      iptal edilerek bu gibi durumlara karşı önlem alınabilir:</p>
 | 
						||
 | 
						||
    <ul>
 | 
						||
      <li><directive module="mpm_common">MaxConnectionsPerChild</directive>
 | 
						||
        yönergesinin değeri sıfır yapılır.</li>
 | 
						||
 | 
						||
      <li><directive module="mpm_common">MaxSpareThreads</directive> ve
 | 
						||
        <directive module="mpm_common">MaxRequestWorkers</directive>
 | 
						||
        yönergelerinin değerleri birbirine eşitlenir.</li>
 | 
						||
    </ul>
 | 
						||
 | 
						||
    <p><module>worker</module> modülünün öntanımlı süreç-evre yapılandırması
 | 
						||
      genelde şöyledir:</p>
 | 
						||
 | 
						||
    <example>
 | 
						||
      ServerLimit         16<br />
 | 
						||
      StartServers         2<br />
 | 
						||
      MaxRequestWorkers  150<br />
 | 
						||
      MinSpareThreads     25<br />
 | 
						||
      MaxSpareThreads     75<br />
 | 
						||
      ThreadsPerChild     25
 | 
						||
    </example>
 | 
						||
 | 
						||
    <p>Unix altında 80. portu dinleyebilmek için ana sürecin root tarafından
 | 
						||
      çalıştırılmış olması gerekirse de çocuk süreçler ve evreler Apache
 | 
						||
      httpd tarafından daha az yetkili bir kullanıcının aidiyetinde
 | 
						||
      çalıştırılırlar. Apache httpd’nin çocuk süreçlerinin kullanıcı ve
 | 
						||
      gruplarını ayarlamak için <directive module="mod_unixd">User</directive>
 | 
						||
      ve <directive module="mod_unixd">Group</directive> yönergeleri
 | 
						||
      kullanılır.
 | 
						||
      Çocuk süreçlerin sunacakları içeriği okumaya yetkili olmaları gerekir,
 | 
						||
      fakat bu yetkinin mümkün olduğunca kısıtlı tutulmasına çalışılmalıdır.
 | 
						||
      Bundan başka, <program>suexec</program> kullanılmadığı takdirde, bu
 | 
						||
      yönergeler CGI betikleri tarafından miras alınacak yetkili kullanıcı
 | 
						||
      ve grubu da ayarlarlar.</p>
 | 
						||
 | 
						||
    <p><directive module="mpm_common">MaxConnectionsPerChild</directive>
 | 
						||
      yönergesi ana sunucunun eski süreçleri öldürüp yenilerini oluşturmayı
 | 
						||
      ne kadar sıklıkla yapacağını denetler.</p>
 | 
						||
 | 
						||
    <p>Bu MPM, gürleyen sürü sorunu ortaya çıktığında (genelde çok sayıda
 | 
						||
      dinlenen soket varlığında) gelen bağlantılara erişimi dizgileştirmek için
 | 
						||
      <code>mpm-accept</code> muteksini kullanır. Bu muteksin gerçeklenimle
 | 
						||
      ilgili hususları <directive module="core">Mutex</directive> yönergesi ile
 | 
						||
      yapılandırılabilir. Bu muteks hakkında ek bilgi  için <a
 | 
						||
      href="../misc/perf-tuning.html">başarımın arttırılması</a>
 | 
						||
      belgesine bakınız.</p>
 | 
						||
 | 
						||
</section>
 | 
						||
 | 
						||
<directivesynopsis location="mpm_common"><name>CoreDumpDirectory</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>EnableExceptionHook</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mod_unixd"><name>Group</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>PidFile</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>Listen</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ListenBacklog</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>MaxRequestWorkers</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>MaxMemFree</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>MaxConnectionsPerChild</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>MaxSpareThreads</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>MinSpareThreads</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ScoreBoardFile</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ReceiveBufferSize</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>SendBufferSize</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ServerLimit</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>StartServers</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ThreadLimit</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ThreadsPerChild</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mpm_common"><name>ThreadStackSize</name>
 | 
						||
</directivesynopsis>
 | 
						||
<directivesynopsis location="mod_unixd"><name>User</name>
 | 
						||
</directivesynopsis>
 | 
						||
 | 
						||
</modulesynopsis>
 |