<-
Apache > HTTP Sunucusu > Belgeleme > Sürüm 2.4

Çok Süreçlilik Modülleri (MPM’ler) 2v4533

Mevcut Diller:  zh-cn 

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.

 Apache!

Ayrıca bakınız: 57581q

top

Giriş 2e6f6l

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.

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.

Sunucunun modüler tasarımının bu seviyede genişletilmesi iki önemli yarar sağlar:

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 modül dizini sayfasında listelenmiştir.

top

Öntanımlı MPM’ler 3852t

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.

Netware mpm_netware
OS/2 mpmt_os2
Unix Platformun yapabildiklerine bağlı olarak, event
Windows mpm_winnt

'Unix' burada Unix benzeri işletim sistemleri anlamında kullanılmıştır (örn, Linux, BSD, Solaris, Mac OS X, vb.

Unix durumunda, hangi MPM'nin kurulacağı kararı şu 2 soruya verilecek yanıta bağlıdır:

1. Sistem evreleri destekliyor mu?

2. Sistem evreleri "thread-safe polling" anlamında destekliyor mu (özellikle kqueue ve epoll işlevlerini)?

Her iki soruya da verilen yanıt 'evet' ise, öntanımlı MPM'niz event modülüdür.

Birincinin yanıtı 'evet' ikincinin 'hayır' ise öntanımlı MPM'niz worker modülüdür.

Yanıtların her ikisi de 'hayır' ise öntanımlı MPM'niz prefork modülüdür.

Uygulamada, günümüzdeki işletim sistemlerinin tümü bu iki özelliği desteklediğinden öntanımlı MPM'niz hemen hemen daima event modülü olacaktır.

top

Bir MPM'i bir duruk modül olarak derlemek 2r651

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.

Öntanımlı MPM seçimin değiştirmek için configure betiğinin --with-mpm=AD seçeneği kullanılır. Buradaki AD istenen MPM'in ismidir.

Sunucu bir kere derlendi mi, hangi MPM'in seçilmiş olduğunu ./httpd -l komutuyla öğrenebilirsiniz. Bu komut, içerilen MPM dahil, sunucu içinde derlenmiş bütüm modülleri listeler.

top

Bir MPM'i bir DSO modülü olarak derlemek 553v4d

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 Loodule yönergesi güncellenerek değiştirilebilir.

Loodule mpm_prefork_module modules/mod_mpm_prefork.so

Loodule 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.

AH00534: httpd: Configuration error: More than one MPM loaded.

Bu özellik configure betiğinin --enable-mpms-shared seçeneği ile etkinleştirilebilir. all değeri belirtilerek platform için kullanılabilen tüm modüller kurulur. İstenirse, değer olarak bir MPM listesi de belirtilebilir.

Özdevinimli olarak seçilerek veya Loodule yönergesinde belirtin.

Mevcut Diller:  zh-cn 

top

Yorumlar 3y13v

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our s if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.