Apache HTTP Sunucusu Sürüm 2.2
Dinleme
Apache’nin belli adresleri ve portları dinlemek üzere yapılandırılması.
Ayrıca bakınız:
Genel Bakış
İlgili Modüller | İlgili Yönergeler |
---|---|
Apache başlatıldığında yerel makinedeki bazı adres ve portları kendine bağlar ve gelecek istekleri bekler. Öntanımlı olarak makine üzerindeki tüm adresleri dinler. Bununla birlikte, belli portları veya sadece seçilmiş bazı adresleri ya da her ikisini de dinlemesi için bunun belirtilmesi gerekebilir. Bu çoğunlukla, Apache’nin farklı IP adreslerine, konak isimlerine ve portlarına nasıl yanıt vereceğinin belirlendiği sanal konak özelliği ile birlikte yürür.
Listen
yönergesi sunucuya
gelen istekleri sadece belli portlardan veya belli adres ve port
birleşimlerinden kabul etmesini söyler. Listen
yönergesinde sadece port
numarası belirtilmişse sunucu tüm arabirimlerin belirtilen portunu
dinleyecektir. Portla birlikte bir IP adresi de belirtilmişse sunucu
belirtilen portu ve arabirimi dinleyecektir. Çok sayıda adres ve portu
dinlemek için çok sayıda Listen
yönergesi kullanılabilir. Sunucu
böyle bir durumda belirtilen bütün adres ve portlardan gelen isteklere
yanıt verecektir.
Örneğin, sunucunun tüm arabirimlerin hem 80 portundan hem de 8000 portundan gelen bağlantıları kabul etmesini sağlamak için,
Listen 80
Listen 8000
yapılandırmasını kullanabilirsiniz. Sunucunun 80 portuna gelen bağlantıları bir arabirimden 8000 portuna gelenleri ise başka bir arabirimden kabul etmesini sağlamak için ise,
Listen 192.0.2.1:80
Listen 192.0.2.5:8000
yapılandırmasını kullanabilirsiniz. IPv6 adresleri aşağıdaki örnekteki gibi köşeli ayraçlar içine alınarak belirtilmelidir:
Listen [2001:db8::a00:20ff:fea7:ccea]:80
IPv6 Adreslerin Durumu
IPv6’yı gerçekleyen platformların sayısı giderek artmaktadır. Bu platformların çoğunda APR, Apache’nin IPv6 soketleri ayırmasını mümkün kılarak IPv6’yı desteklemekte ve IPv6 üzerinden gönderilmiş istekleri elde etmektedir.
Apache yöneticilerinin kafasını karıştırıran tek şey IPv6 soketlerin
hem IPv4 hem de IPv6 bağlantılarını kabul edip etmeyeceğidir. IPv4
bağlantılarını kabul eden IPv6 soketleri IPv4 eşlemli IPv6 adresleri
kullanırlar. Bu çoğu sistemde öntanımlı olarak böyleyken, FreeBSD,
NetBSD ve OpenBSD’de sistem geneline uygulanan kurallar gereğince
öntanımlı olarak buna izin verilmez; bu sistemlerde özel bir
configure
parametresi ile Apache’nin davranışı
değiştirilebilir.
Diğer taraftan, Linux ve Tru64 gibi bazı platformlarda hem IPv4 hem de
IPv6 adresleri kabul etmenin tek yolu eşlemli adresler
kullanmaktır. Apache’nin IPv4 ve IPv6 adresleri, IPv4 eşlemli IPv6
adreslerin kullanımını gerektiren en az sayıda soketle kabul etmesini
istiyorsanız, configure
betiğine
--enable-v4-mapped
seçeneğini belirtiniz.
--enable-v4-mapped
seçeneği, FreeBSD, NetBSD ve OpenBSD
hariç tüm platformlarda öntanımlıdır. Muhtemelen siz de Apache’nin
böyle derlenmesini isterdiniz.
Platformunuzun ve APR’nin neyi desteklediğine bakmaksızın Apache’nin
sadece IPv4 adresleri kabul etmesini istiyorsanız, tüm Listen
yönergelerinde örnekteki gibi
IPv4 adresleri belirtiniz:
Listen 0.0.0.0:80
Listen 192.0.2.1:80
Platformunuz IPv4 ve IPv6 adresleri ayrı soketlerden kabul ediyorsa ve
Apache’nin de buna uygun davranmasını (yani IPv4 eşlemli IPv6
adreslerin iptalini) istiyorsanız configure
betiğine --disable-v4-mapped
seçeneğini belirtiniz. Bu
seçenek FreeBSD, NetBSD ve OpenBSD’de öntanımlıdır.
Sanal Konaklarla Nasıl Çalışır?
Listen
yönergesi sanal
konaklar için gerçeklenmemiştir; sadece ana sunucuya hangi adresleri ve
portları dinleyeceğini söyler. Hiç <VirtualHost>
yönergesi kullanılmamışsa sunucu
kabul edilen tüm isteklere aynı şekilde davranacaktır. Eğer bir veya
daha fazla adres veya port için farklı bir davranış belirtmek
istiyorsanız <VirtualHost>
kullanabilirsiniz. Bir sanal
konağı gerçeklemek için önce sunucunun sanal konak için kullanacağı
adres ve portu dinleyeceğini belirtmek gerekir. Bundan sonra bu sanal
konağın davranışını ayarlamak üzere belirtilen adres ve port için bir
<VirtualHost>
bölümü
oluşturulmalıdır. Yalnız dikkat edin, eğer <VirtualHost>
için belirtilen adres ve port
sunucu tarafından dinlenmiyorsa ona erişemezsiniz.