| <?xml version='1.0' encoding='UTF-8' ?> |
| <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd"> |
| <?xml-stylesheet type="text/xsl" href="./style/manual.tr.xsl"?> |
| <!-- English Revision: 1602766 --> |
| <!-- ===================================================== |
| Translated by: Nilgün Belma Bugüner <nilgun belgeler.gen.tr> |
| Reviewed by: Orhan Berent <berent belgeler.gen.tr> |
| ========================================================== --> |
| |
| <!-- |
| 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. |
| --> |
| |
| <manualpage metafile="mpm.xml.meta"> |
| |
| <title>Çok Süreçlilik Modülleri (MPM’ler)</title> |
| |
| <summary> |
| <p>Bu belgede Çok Süreçlilik Modülü denince ne anlaşıldığı ve bunların |
| Apache HTTP Sunucusu tarafından nasıl kullanıldıkları açıklanmıştır.</p> |
| </summary> |
| |
| <section id="introduction"><title>Giriş</title> |
| |
| <p>Apache HTTP Sunucusu çok çeşitli platformlar üstünde farklı ortamlarda |
| çalışabilen güçlü ve esnek bir HTTP sunucusu olarak tasarlanmıştır. |
| Farklı platformlar ve farklı ortamlar çoğunlukla farklı özellikler veya |
| aynı özelliğin en yüksek verimlilikle gerçeklenmesi için farklı yöntemler |
| gerektirir. Apache httpd, geniş ortam çeşitliliğini daima modüler |
| tasarımı sayesinde uzlaştırmıştır. Bu tasarım, site yöneticilerine, |
| sunucularında bulunmasını istedikleri özellikleri derleme sırasında veya |
| çalışma anında gerekli modülleri yüklemek suretiyle seçebilme imkanı |
| verir.</p> |
| |
| <p>Apache HTTP Sunucusu 2.0, bu modüler tasarımı sunucunun en temel |
| işlevlerine kadar indirmiştir. Sunucu, Çok Süreçlilik Modülleri adı |
| verilen ve makine üzerindeki ağ portlarının bağlanmasından, isteklerin |
| kabul edilmesinden ve bu istekleri yanıtlayacak çocuklara dağıtmaktan |
| sorumlu olan modüllerin seçimine imkan verecek bir yapılanma ile |
| gelir.</p> |
| |
| <p>Sunucunun modüler tasarımının bu seviyede genişletilmesi iki önemli |
| yarar sağlar:</p> |
| |
| <ul> |
| <li>Apache httpd geniş çeşitlilikteki işletim sistemlerini daha temiz ve |
| daha verimli bir şekilde destekleyebilmektedir. Özellikle, |
| <module>mpm_winnt</module> modülü, Apache httpd 1.3’te kullanılan POSIX |
| katmanının yerine işletim sistemine özgü özellikleri |
| kullanabildiğinden, Apache HTTP Sunucusunun Windows sürümü artık çok |
| daha verimli bir duruma gelmiştir. Aynı fayda özelleştirilmiş MPM’lerle |
| diğer işletim sistemlerine de sağlanmıştır.</li> |
| |
| <li>Sunucu, belli bir sitenin ihtiyaçlarına uygun olarak daha iyi |
| kişiselleştirilebilmektedir. Örneğin, eski yazılım ile uyumluluk ve |
| kararlılığa önem veren siteler <module>prefork</module> modülünü |
| kullanabilirken, daha geniş ölçeklenebilirlik gerektiren siteler |
| <module>worker</module> veya <module>event</module> gibi evreli MPM |
| modüllerinden birini seçebilmektedir.</li> |
| </ul> |
| |
| <p>Kullanıcı açısından MPM’lerin diğer Apache httpd modüllerinden görünüşte |
| bir farkı yoktur. Asıl fark sunucuya yüklenebilecek azami MPM modülü |
| sayısının bir ve yalnız bir olarak sınırlanmış olmasıdır. Mevcut MPM |
| modülleri <a href="mod/">modül dizini</a> sayfasında listelenmiştir.</p> |
| |
| </section> |
| |
| <section id="defaults"><title>Öntanımlı MPM’ler</title> |
| |
| <p>Aşağıdaki tabloda çeşitli işletim sistemlerinde öntanımlı olan MPM’ler |
| listelenmiştir. Derleme sırasında başka bir seçim yapmadığınız takdirde |
| bu işletim sistemlerinde bu MPM’ler seçilmiş olacaktır.</p> |
| |
| <table border="1" style="zebra"> |
| <columnspec><column width=".2"/><column width=".2"/></columnspec> |
| <tr><td>Netware</td><td><module>mpm_netware</module></td></tr> |
| <tr><td>OS/2</td><td><module>mpmt_os2</module></td></tr> |
| <tr><td>Unix</td><td>Platformun yapabildiklerine bağlı olarak, |
| <module>prefork</module>, <module>worker</module> veya |
| <module>event</module></td></tr> |
| <tr><td>Windows</td><td><module>mpm_winnt</module></td></tr> |
| </table> |
| |
| <note><p>'Unix' burada Unix benzeri işletim sistemleri anlamında |
| kullanılmıştır (örn, Linux, BSD, Solaris, Mac OS X, vb.</p></note> |
| |
| <p>Unix durumunda, hangi MPM'nin kurulacağı kararı şu 2 soruya verilecek |
| yanıta bağlıdır:</p> |
| <p>1. Sistem evreleri destekliyor mu?</p> |
| <p>2. Sistem evreleri "thread-safe polling" anlamında destekliyor mu |
| (özellikle kqueue ve epoll işlevlerini)?</p> |
| |
| <p>Her iki soruya da verilen yanıt 'evet' ise, öntanımlı MPM'niz |
| <module>event</module> modülüdür.</p> |
| |
| <p>Birincinin yanıtı 'evet' ikincinin 'hayır' ise öntanımlı MPM'niz |
| <module>worker</module> modülüdür.</p> |
| |
| <p>Yanıtların her ikisi de 'hayır' ise öntanımlı MPM'niz |
| <module>prefork</module> modülüdür.</p> |
| |
| <p>Uygulamada, günümüzdeki işletim sistemlerinin tümü bu iki özelliği |
| desteklediğinden öntanımlı MPM'niz hemen hemen daima |
| <module>event</module> modülü olacaktır.</p> |
| |
| </section> |
| |
| <section id="static"><title>Bir MPM'i bir duruk modül olarak derlemek</title> |
| |
| <p>MPM'ler tüm platformlarda duruk (static) modüller olarak derlenebilir. |
| Derleme sırasında tek bir modül seçilir ve sunucu ile ilintilenir. MPM |
| değiştirilmek istenirse sunucunun yeniden derlenmesi gerekir.</p> |
| |
| <p>Öntanımlı MPM seçimin değiştirmek için <program>configure</program> |
| betiğinin <code>--with-mpm=<em>AD</em></code> seçeneği kullanılır. |
| Buradaki <em>AD</em> istenen MPM'in ismidir.</p> |
| |
| <p>Sunucu bir kere derlendi mi, hangi MPM'in seçilmiş olduğunu |
| <code>./httpd -l</code> komutuyla öğrenebilirsiniz. Bu komut, içerilen |
| MPM dahil, sunucu içinde derlenmiş bütüm modülleri listeler.</p> |
| |
| </section> |
| |
| <section id="dynamic"><title>Bir MPM'i bir DSO modülü olarak derlemek</title> |
| |
| <p>Unix ve benzeri platformlarda, MPM'ler DSO modülleri olarak derlenebilir |
| ve diğer DSO modülleri gibi sunucuya devingen olarak yüklenebilir. DSO |
| modülü olarak derlenen MPM'ler, sunucunun yeniden derlenmesini |
| gerektirmeden <directive module="mod_so">LoadModule</directive> yönergesi |
| güncellenerek değiştirilebilir.</p> |
| |
| <highlight language="config"> |
| LoadModule mpm_prefork_module modules/mod_mpm_prefork.so |
| </highlight> |
| |
| <p><directive module="mod_so">LoadModule</directive> yönergesini birden |
| fazla MPM için kullanmak sunucunun başlatılması sırasında aşağıdaki |
| hatanın oluşmasına sebep olur.</p> |
| |
| <example>AH00534: httpd: Configuration error: More than one MPM |
| loaded.</example> |
| |
| <p>Bu özellik <program>configure</program> betiğinin |
| <code>--enable-mpms-shared</code> seçeneği ile etkinleştirilebilir. |
| <code><em>all</em></code> değeri belirtilerek platform için |
| kullanılabilen tüm modüller kurulur. İstenirse, değer olarak bir MPM |
| listesi de belirtilebilir.</p> |
| |
| <p>Özdevinimli olarak seçilerek veya <program>configure</program> betiğine |
| <code>--with-mpm</code> seçeneğiyle belirtilerek seçilen öntanımlı MPM |
| üretilen sunucu yapılandırma dosyasıyla yüklenir. Farklı bir MPM seçmek |
| için MPM'i <directive module="mod_so">LoadModule</directive> yönergesinde |
| belirtin.</p> |
| |
| </section> |
| |
| </manualpage> |