From bc97bf5c69c0d909c16405c8c5426c8ef35c430c Mon Sep 17 00:00:00 2001
From: Nilgun Belma Buguner
Apache HTTPD, içerik uzlaÅımını HTTP/1.1 belirtiminde bahsedildiÄi Åekliyle
diff --git a/docs/manual/content-negotiation.xml.meta b/docs/manual/content-negotiation.xml.meta
index d9d19c5db3..8fe0d88680 100644
--- a/docs/manual/content-negotiation.xml.meta
+++ b/docs/manual/content-negotiation.xml.meta
@@ -11,6 +11,6 @@
Kimlik DoÄrulama istediÄiniz kiÅileri teyid etme iÅlemidir. Yetkilendirme ise kiÅilerin nereye gireceklerine ve hangi bilgiye @@ -140,9 +139,8 @@
Kimlik doÄrulamadan sözettiÄimize göre, aÅaÄıda gösterilen
Åekilde bir AllowOverride
yönergesine ihtiyacınız olacaktır:
- AllowOverride AuthConfig
-
AllowOverride AuthConfig+
Yönergeleri doÄrudan ana sunucunun yapılandırma dosyasına koyacaksanız bu dosyaya yazma izniniz olmalıdır.
@@ -214,14 +212,15 @@ veyahttpd.conf
içindeki <Directory
/usr/local/apache/htdocs/secret> bölümüne koyabilirsiniz.
-
- AuthType Basic
- AuthName "Gizli Dosyalar"
- # (AÅaÄıdaki satırın kullanımı isteÄe baÄlıdır)
- AuthBasicProvider file
- AuthUserFile /usr/local/apache/passwd/passwords
- Require user umut
-
+AuthType Basic +AuthName "Gizli Dosyalar" +# (AÅaÄıdaki satırın kullanımı isteÄe baÄlıdır) +AuthBasicProvider file +AuthUserFile /usr/local/apache/passwd/passwords +Require user umut ++
Bu yönergeleri tek tek inceleyelim.
AuthType
yönergesi
@@ -271,8 +270,9 @@
dosyasında depolama özelliÄine de sahiptir. Bu amaçla,
mod_authn_dbm
modülünün
AuthDBMUserFile
- yönergesi kullanılabilir. Bu dosyalar dbmmanage
- programı ile oluÅturulabilir ve deÄiÅtirilebilir. Apache modülleri
+ yönergesi kullanılabilir. Bu dosyalar dbmmanage
ve
+ htdbm
programı ile oluÅturulabilir ve deÄiÅtirilebilir.
+ Apache modülleri
Veritabanı içindeki üçüncü parti modüllerinde çok sayıda
baÅka kimlik doÄrulama türü de vardır.
-c
seçeneÄi
kullanılır).
- Åimdi, .htaccess
dosyanızı aÅaÄıda görüldüÄü Åekilde
- deÄiÅtirebilirsiniz:
Åimdi, .htaccess
dosyanızı veya
+ <Directory>
bölümünüzü
+ aÅaÄıda görüldüÄü Åekilde deÄiÅtirebilirsiniz:
+AuthType Basic +AuthName "Davete Binaen" +# Satır isteÄe baÄlıdır: +AuthBasicProvider file +AuthUserFile /usr/local/apache/passwd/passwords +AuthGroupFile /usr/local/apache/passwd/groups +Require group Grupismi +-
- AuthType Basic
- AuthName "Davete Binaen"
- # Satır isteÄe baÄlıdır:
- AuthBasicProvider file
- AuthUserFile /usr/local/apache/passwd/passwords
- AuthGroupFile /usr/local/apache/passwd/groups
- Require group Grupismi
-
Artık, Grupismi
gurubunda listelenmiÅ ve
password
dosyasında kaydı olan kiÅiye, parolayı doÄru
@@ -336,19 +338,13 @@
yol daha mevcuttur. Bir gurup dosyası oluÅturmaktansa, Åu yönergeyi
kullanabilirsiniz:
- Require valid-user
-
Require valid-user+
Require user umut
satırı ile parola dosyasında
listelenmiÅ ve parolayı doÄru olarak giren herhangi bir kiÅiye izin
vermektense, her grup için ayrı bir parola dosyası tutarak grup
- davranıÅını taklit edebilirsiniz. Bu yaklaÅımın getirisi:
- Apache iki dosya yerine sadece bir dosyaya bakar.
- Götürüsü ise parola dosyalarından oluÅan bir dosya demeti saÄlamak
- ve AuthUserFile
- yönergesinde doÄru dosyayı belirtmeyi unutmamak zorunda
- kalmanızdır.
AuthBasicProvider
file
yerine, dbm
veya dbd
kullanabilirsiniz.
- Bir metin dosyası yerine bir dbd dosyası kullanım örneÄi:
+Bir metin dosyası yerine bir dbm dosyası kullanım örneÄi:
+ ++<Directory /www/docs/private> + AuthName "Private" + AuthType Basic + AuthBasicProvider dbm + AuthDBMUserFile /www/passwords/passwd.dbm + Require valid-user +</Directory> +-
- <Directory /www/docs/private>
-
- AuthName "Private"
- AuthType Basic
- AuthBasicProvider dbm
- AuthDBMUserFile /www/passwords/passwd.dbm
- Require valid-user
-
- </Directory>
-
BaÅka seçenekler de mümkündür. Ayrınılar için
mod_authn_dbm
belgesine baÅvurun.
- <Directory /www/docs/private>
-
- AuthName "Private"
- AuthType Basic
- AuthBasicProvider file ldap
- AuthUserFile /usr/local/apache/passwd/passwords
- AuthLDAPURL ldap://ldaphost/o=yourorg
- Require valid-user
-
- </Directory>
-
+<Directory /www/docs/private> + AuthName "Private" + AuthType Basic + AuthBasicProvider file ldap + AuthUserFile /usr/local/apache/passwd/passwords + AuthLDAPURL ldap://ldaphost/o=yourorg + Require valid-user +</Directory> ++
Bu örnekte dosya tedarikçisi, ilk olarak kullanıcının kimliÄini doÄrulamaya teÅebbüs edecektir. Kullanıcının kimliÄi @@ -436,20 +430,19 @@ dosya için hem dosyalı hem de LDAP grup kimlik doÄrulaması kullanılmıÅtır.
-
- <Directory /www/docs/private>
-
- AuthName "Private"
- AuthType Basic
- AuthBasicProvider file
- AuthUserFile /usr/local/apache/passwd/passwords
+
+<Directory /www/docs/private>
+ AuthName "Private"
+ AuthType Basic
+ AuthBasicProvider file
+ AuthUserFile /usr/local/apache/passwd/passwords
AuthLDAPURL ldap://ldaphost/o=yourorg
- AuthGroupFile /usr/local/apache/passwd/groups
- </Directory>
-
- Require group GroupName
- Require ldap-group cn=mygroup,o=yourorg
-
Kimlik doÄrulama konusunu biraz daha geniÅletirsek, <RequireAll>
ve
<RequireAny>
gibi yetkilendirme taÅıyıcısı
@@ -515,16 +508,14 @@
çaÄırılacak yetkilendirme tedarikçilerini kayda geçirir. ÃrneÄin:
- Require ip adres
-
Require ip adres+
Burada, adres bir IP adresidir (veya kısmi bir IP addresidir)
-
- Require host alan_adı
-
Require host alan_adı+
Burada, alan_adı bir tam nitelikli alan adıdır (ya da kısmi alan adıdır); gerekirse çok sayıda alan adı veya IP @@ -534,51 +525,45 @@ tutmak istediÄinizi varsayalım. Bu kiÅiyi uzak tutmak için Åunları yapabilirsiniz:
-
- <RequireAll>
-
- Require all granted
- Require not ip 10.252.46.165
-
- </RequireAll>
-
+<RequireAll> + Require all granted + Require not ip 10.252.46.165 +</RequireAll> ++
Bu adresden gelen ziyaretçiler bu yönergedeki içeriÄi göremeyeceklerdir. Bunun yerine, elinizde IP adresi deÄil de makine adı varsa Åunu kullanabilirsiniz:
-
- <RequireAll>
-
- Require all granted
- Require not host host.example.com
-
- </RequireAll>
-
+<RequireAll> + Require all granted + Require not host host.example.com +</RequireAll> ++
EÄer alan adının tamanıdan gelecek olan bütün eriÅimleri engellemek isterseniz adresin ya da alan adının bir parçasını belirtin:
-
- <RequireAll>
-
- Require all granted
- <RequireNone>
-
- Require ip 192.168.205
- Require host phishers.example.com moreidiots.example
- Require host ke
-
- </RequireNone>
-
- </RequireAll>
-
Yukarıdaki örnekte, <RequireNone>
yönergesi içindeki
- Require
- yönergelerinin deÄiÅtirgeleriyle hiçbir bir eÅleÅme olmaması
- durumunda eriÅime izin verilir.
+<RequireAll> + Require all granted + Require not ip 192.168.205 + Require not host phishers.example.com moreidiots.example + Require not host ke +</RequireAll> ++ + +
<RequireAll>
yönergesini çok sayıda
+ <Require>
yönergesi ile birlikte kullanarak,
+ sadece not
ile olumsuzlanan tüm koÅulları gerçekleyen
+ baÄlantılara eriÅim verilir. BaÅka bir deyiÅle, olumsuzlanan koÅulları
+ gerçeklemeyen baÄlantıların eriÅimi engellenir.
Ãok kullanıcılı sistemlerde, UserDir
yönergesi ile her kullanıcının kendi ev dizininde
bir sitesi olması saÄlanabilir.
@@ -74,9 +73,8 @@
kullanıcının ev dizinine göreli bir dizin belirtildiÄi varsayılır.
Yapılandırmada Åöyle bir satır varsa:
- UserDir public_html
-
UserDir public_html+
http://example.com/~orhan/dosya.html
adresine karÅılık
gelen dosya yolu /home/orhan/public_html/dosya.html
olarak
@@ -87,9 +85,8 @@
dizinlerde bulunacaÄı varsayılır. Yapılandırmada Åöyle bir satır
varsa:
- UserDir /var/html
-
UserDir /var/html+
http://example.com/~orhan/dosya.html
adresine karÅılık
gelen dosya yolu /var/html/orhan/dosya.html
olarak
@@ -99,19 +96,17 @@
yerine kullanıcı ismi yerleÅtirilerek elde edilen dosya yolu
kullanılır. Yapılandırmada Åöyle bir satır varsa:
- UserDir /var/siteler/*/sayfam
-
UserDir /var/html/*/sayfam+
http://example.com/~orhan/dosya.html
adresine karÅılık
- gelen dosya yolu /var/siteler/orhan/sayfam/dosya.html
+ gelen dosya yolu /var/html/orhan/sayfam/dosya.html
olarak çözümlenir.
Ãok sayıda dizin veya dizin yolu belirtmek de mümkündür.
-
- UserDir public_html /var/siteler
-
UserDir public_html /var/html+
http://example.com/~orhan/dosya.html
adresini Apache önce
/home/orhan/public_html/dosya.html
olarak arayacak,
@@ -126,9 +121,8 @@
kullanıcı dizini isteklerini harici adreslere yönlendirmek için de
kullanılabilir.
- UserDir http://example.org/users/*/
-
UserDir http://example.org/users/*/+
Bu yapılandırmaya göre http://example.com/~bob/abc.html
için yapılan bir istek http://example.org/users/bob/abc.html
@@ -142,9 +136,8 @@
açıklamasında belirtilen sözdizimini kullanarak bu iÅlevselliÄi bazı
kullanıcılara yasaklayabilirsiniz:
- UserDir disabled root ahmet mustafa
-
UserDir disabled root ahmet veli+
Bu yapılandırma ile disabled
deyiminin bulunduÄu
satırdaki kullanıcılar dıÅında kalan bütün kullanıcılar için bu özellik
@@ -152,10 +145,11 @@
iÅlevselliÄin belli kullanıcılar dıÅında kullanılmamasını da
saÄlayabilirsiniz:
+
UserDir disabled
UserDir enabled orhan yasar
-
Daha fazla örnek için UserDir
yönergesinin açıklamasına bakabilirsiniz.
- <Directory /home/*/public_html/cgi-bin/>
- Options ExecCGI
- SetHandler cgi-script
- </Directory>
-
+<Directory /home/*/public_html/cgi-bin/> + Options ExecCGI + SetHandler cgi-script +</Directory> ++
UserDir
yönergesinde
public_html
belirtildiÄi varsayımıyla
diff --git a/docs/manual/howto/public_html.xml.meta b/docs/manual/howto/public_html.xml.meta
index 224e3019cd..30c006edff 100644
--- a/docs/manual/howto/public_html.xml.meta
+++ b/docs/manual/howto/public_html.xml.meta
@@ -11,6 +11,6 @@
Apache 2.x, esneklik, taÅınabilirlik ve baÅarım arasında bir denge
@@ -143,14 +142,13 @@
.cgi
dosyalarına yapılan istekler hariç DNS sorguları
iptal edilmektedir:
- HostnameLookups off
- <Files ~ "\.(html|cgi)$">
-
- HostnameLookups on
-
- </Files>
-
+HostnameLookups off +<Files ~ "\.(html|cgi)$"> + HostnameLookups on +</Files> ++
Yine de bazı CGIâlerin DNS isimlerine ihtiyacı olursa bu CGIâlerin
bu ihtiyaçlarına yönelik olarak gethostbyname
çaÄrıları
@@ -169,14 +167,13 @@
baÄın üzerinde bazı sınamalar yapmak için ek bir sistem çaÄrısından
baÅka istenen her dosya için de ayrı bir çaÄrı yapacaktır.
- DocumentRoot /siteler/htdocs
- <Directory />
-
- Options SymLinksIfOwnerMatch
-
- </Directory>
-
+DocumentRoot /siteler/htdocs +<Directory /> + Options SymLinksIfOwnerMatch +</Directory> ++
Bu durumda /index.html
için bir istek yapıldıÄında
Apache, /siteler
, /siteler/htdocs
ve
@@ -186,20 +183,17 @@
yinelenecektir. Amacınız gerçekten sembolik baÄları güvenlik
açısından sınamaksa bunu Åöyle yapabilirsiniz:
- DocumentRoot /siteler/htdocs
- <Directory />
-
- Options FollowSymLinks
-
- </Directory>
-
- <Directory /sitem/htdocs>
-
- Options -FollowSymLinks +SymLinksIfOwnerMatch
-
- </Directory>
-
+DocumentRoot /siteler/htdocs +<Directory /> + Options FollowSymLinks +</Directory> + +<Directory /siteler/htdocs> + Options -FollowSymLinks +SymLinksIfOwnerMatch +</Directory> ++
Böylece DocumentRoot
altındaki
dosyalar için fazladan bir çaÄrı yapılmasını engellemiÅ olursunuz.
@@ -222,14 +216,13 @@
her dosya bileÅeni için bu .htaccess
dosyalarını açmaya
çalıÅacaktır.
- DocumentRoot /siteler/htdocs
- <Directory />
-
- AllowOverride all
-
- </Directory>
-
+DocumentRoot /siteler/htdocs +<Directory /> + AllowOverride all +</Directory> ++
Bu durumda /index.html
sayfasına yapılan bir istek için
Apache, /.htaccess
, /siteler/.htaccess
ve
@@ -249,16 +242,16 @@
isterken büyük baÅarım kayıplarına uÄrayabilirsiniz. Böyle bir
durumda sunucunun baÅarımını arttırmanın tek bir yolu vardır.
- DirectoryIndex index
-
DirectoryIndex index+
Yukarıdaki gibi bir dosya ismi kalıbı kullanmak yerine, aÅaÄıdaki gibi seçenekleri tam bir liste halinde belirtin:
-
- DirectoryIndex index.cgi index.pl index.shtml index.html
-
+DirectoryIndex index.cgi index.pl index.shtml index.html ++
Buradaki sıralama öncelik sırasını belirler; yani,
öncelikli olmasını istediÄiniz seçeneÄi listenin baÅına
@@ -440,6 +433,12 @@
vermesi nedeniyle yüksek trafiÄe sahip sunucularda
prefork
modülüne göre daha iyi bir seçimdir.
+
event
modülü worker
modülü gibi
+ çok evreli bir modüldür, fakat aunı anda dahafazla isteÄe yanıt
+ verecek Åekilde tasarlanmıÅtır. Bunu, evreleri destekleyen bazı
+ iÅlemleri yapmamak suretiyle yeni isteklerle çalıÅacak ana evreleri
+ serbestleÅtirerek saÄlar.prefork
modülü her biri tek bir evreye sahip
çok sayıda çocuk süreç kullanımını destekler. Her süreç aynı anda
tek bir baÄlantıya hizmet sunar. ÃoÄu sistemde daha hızlı olması
@@ -579,39 +578,30 @@
baÄlantılar denenebilir. Gerçekte çalıÅan kod bu olmasa da meramımızı
anlatmak için kodun Åöyle bir Åey olduÄunu varsayabiliriz:
-
- for (;;) {
-
- for (;;) {
-
- fd_set accept_fds;
-
- FD_ZERO (&accept_fds);
- for (i = first_socket; i <= last_socket; ++i) {
-
- FD_SET (i, &accept_fds);
-
- }
- rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
- if (rc < 1) continue;
- new_connection = -1;
- for (i = first_socket; i <= last_socket; ++i) {
-
- if (FD_ISSET (i, &accept_fds)) {
-
- new_connection = accept (i, NULL, NULL);
- if (new_connection != -1) break;
-
- }
-
- }
- if (new_connection != -1) break;
-
- }
- process the new_connection;
-
+
+ for (;;) {
+ for (;;) {
+ fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ FD_SET (i, &accept_fds);
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ if (FD_ISSET (i, &accept_fds)) {
+ new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+ }
+ }
+ if (new_connection != -1) break;
+ }
+ process_the(new_connection);
}
-
Bu özet gerçeklenim bir takım açlık sorunlarına sebep olur. Bu döngünün çalıÅması sırasında aynı anda çok sayıda çocuk süreç yeniden @@ -648,41 +638,32 @@ bir iç döngüde sıraya sokmaktır. Döngü aÅaÄıda örneklenmiÅtir (farklar vurgulanmıÅtır):
-
- for (;;) {
-
- accept_mutex_on ();
- for (;;) {
-
- fd_set accept_fds;
-
- FD_ZERO (&accept_fds);
- for (i = first_socket; i <= last_socket; ++i) {
-
- FD_SET (i, &accept_fds);
-
- }
- rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
- if (rc < 1) continue;
- new_connection = -1;
- for (i = first_socket; i <= last_socket; ++i) {
-
- if (FD_ISSET (i, &accept_fds)) {
-
- new_connection = accept (i, NULL, NULL);
- if (new_connection != -1) break;
-
- }
-
- }
- if (new_connection != -1) break;
-
- }
- accept_mutex_off ();
- process the new_connection;
-
+
+ for (;;) {
+ accept_mutex_on ();
+ for (;;) {
+ fd_set accept_fds;
+
+ FD_ZERO (&accept_fds);
+ for (i = first_socket; i <= last_socket; ++i) {
+ FD_SET (i, &accept_fds);
+ }
+ rc = select (last_socket+1, &accept_fds, NULL, NULL, NULL);
+ if (rc < 1) continue;
+ new_connection = -1;
+ for (i = first_socket; i <= last_socket; ++i) {
+ if (FD_ISSET (i, &accept_fds)) {
+ new_connection = accept (i, NULL, NULL);
+ if (new_connection != -1) break;
+ }
+ }
+ if (new_connection != -1) break;
+ }
+ accept_mutex_off ();
+ process the new_connection;
}
-
accept_mutex_on
ve accept_mutex_off
iÅlevleri bir karÅılıklı red
semoforu oluÅtururlar. Mutekse aynı anda sadece bir çocuk sahip
@@ -782,42 +763,32 @@
lingering_close
adında bir iÅlevle gerçekler. Bu iÅlev
kabaca Åöyle görünür:
- void lingering_close (int s)
- {
-
- char junk_buffer[2048];
-
- /* gönderen tarafı kapat */
- shutdown (s, 1);
-
- signal (SIGALRM, lingering_death);
- alarm (30);
-
- for (;;) {
-
- /* s'i okumak için, 2 saniyelik zaman aÅımı ile seç */
- select (s for reading, 2 second timeout);
- /* Hata oluÅmuÅsa döngüden çık */
- if (error) break;
- /* s okumak için hazırsa */
- if (s is ready for reading) {
-
- if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
-
- break;
-
- }
- /* geri kalan herÅey burada */
-
- }
-
- }
-
- close (s);
-
+
+ void lingering_close (int s)
+ {
+ char junk_buffer[2048];
+
+ /* shutdown the sending side */
+ shutdown (s, 1);
+
+ signal (SIGALRM, lingering_death);
+ alarm (30);
+
+ for (;;) {
+ select (s for reading, 2 second timeout);
+ if (error) break;
+ if (s is ready for reading) {
+ if (read (s, junk_buffer, sizeof (junk_buffer)) <= 0) {
+ break;
+ }
+ /* just toss away whatever is here */
+ }
+ }
+
+ close (s);
}
-
BaÄlantı sonunda bu doÄal olarak biraz daha masrafa yol açar, fakat
güvenilir bir gerçeklenim için bu gereklidir. HTTP/1.1'in daha yaygın
diff --git a/docs/manual/misc/perf-tuning.xml.meta b/docs/manual/misc/perf-tuning.xml.meta
index a4ba1984eb..38baef0070 100644
--- a/docs/manual/misc/perf-tuning.xml.meta
+++ b/docs/manual/misc/perf-tuning.xml.meta
@@ -10,6 +10,6 @@
Bir HTTP Sunucusunu ayarlarken dikkat edilmesi gerekenler ve bazı ipuçları. Ãneriler kısmen Apacheâye özel kısmen de genel olacaktır.
@@ -331,13 +330,12 @@Sunucu yapılandırma dosyanıza Åunu yerleÅtirin:
-
- <Directory />
-
- AllowOverride None
-
- </Directory>
-
+<Directory /> + AllowOverride None +</Directory> ++
Böylece, belli dizinlerde özellikle etkinleÅtirilmedikçe bütün
dizinlerde .htaccess
dosyalarının kullanımını engellemiÅ
@@ -365,33 +363,29 @@
olursunuz. Bu iÅlemin sonuçlarının önünü almak için sunucu yapılandırma
dosyanıza Åunları yazın:
- <Directory />
-
- Order Deny,Allow
- Deny from all
-
- </Directory>
-
+<Directory /> + Order Deny,Allow + Deny from all +</Directory> ++
Bu suretle, dosya sisteminize öntanımlı eriÅimi yasaklamıŠolursunuz.
EriÅime izin vermek istediÄiniz dizinler için uygun Directory
bölümleri eklemeniz yeterli
olacaktır. Ãrnek:
- <Directory /usr/users/*/public_html>
-
- Order Deny,Allow
- Allow from all
-
- </Directory>
- <Directory /usr/local/httpd>
-
- Order Deny,Allow
- Allow from all
-
- </Directory>
-
+<Directory /usr/users/*/public_html> + Order Deny,Allow + Allow from all +</Directory> +<Directory /usr/local/httpd> + Order Deny,Allow + Allow from all +</Directory> ++
Location
ve Directory
yönergelerinin etkileÅimine de
özellikle önem vermelisiniz; örneÄin <Directory />
@@ -404,9 +398,8 @@
durumla karÅılaÅırız. Sunucu yapılandırma dosyanızda aÅaÄıdaki satırın
mutlaka bulunmasını öneririz:
- UserDir disabled root
-
UserDir disabled root+
Bu, sunucu yapılandırma dosyanızda aÅaÄıdaki yapılandırmayı iptal ettiÄiniz anlamına gelir:
-
- <Files ".ht*">
-
- Order allow,deny
- Deny from all
-
- </Files>
-
+<Files ".ht*"> + Order allow,deny + Deny from all +</Files> ++ +
Açıklama: | Apache HTTP Sunucusunda daima mevcut olan çekirdek özellikler |
---|---|
Durum: | Ãekirdek |
Bu yönerge Protocol
yönergesinde belirtilen
+
Bu yönerge Protocol
yönergesinde belirtilen
protokol türüne göre bir dinleme soketinin iÅletim
sistemine özgü en iyilemelerini etkin kılar. Ä°Åletim sistemi çekirdeÄi
için temel önerme veri alınıncaya kadar veya HTTP isteÄinin tamamı
@@ -144,7 +143,10 @@ httpd 2.1.5 ve sonrasında mevcuttur.
gibi sunucunun baÅtan bir veri göndermesinin gerekli olduÄu
protokoller için kullanıÅlıdır. Ãrnek:
AcceptFilter nntp none
+ AcceptFilter nntp none ++
Ãntanımlı protokol isimleri port 443 için https
ve tüm
diÄer portlar için http
'dir. Dinlenmesi için baÅka bir port
@@ -152,10 +154,11 @@ httpd 2.1.5 ve sonrasında mevcuttur.
argümanını ekleyin.
FreeBSD için öntanımlı deÄerler:
-
- AcceptFilter http httpready
- AcceptFilter https dataready
-
+AcceptFilter http httpready +AcceptFilter https dataready ++
httpready
kabul süzgeci HTTP isteklerinin tamamını
iÅletim sistemi çekirdeÄi seviyesinde tamponlar. Ãekirdek isteÄin
@@ -163,10 +166,11 @@ httpd 2.1.5 ve sonrasında mevcuttur.
ÅifrelenmiÅ olduÄundan sadece accf_data(9) süzgeci kullanılır.
Linuxâtaki öntanımlı deÄerler:
-
- AcceptFilter http data
- AcceptFilter https data
-
+AcceptFilter http data +AcceptFilter https data ++
Linuxâun TCP_DEFER_ACCEPT
soket seçeneÄi HTTP isteklerinin
tamponlanmasını desteklemez. none
dahil her deÄer
@@ -176,10 +180,11 @@ httpd 2.1.5 ve sonrasında mevcuttur.
Windowsâtaki öntanımlı deÄerler::
-
- AcceptFilter http data
- AcceptFilter https data
-
+AcceptFilter http data +AcceptFilter https data ++
Windows'un mpm_winnt
modülü AcceptEx()
arayüzünü açıp kapamak için AcceptFilter
'i yorumlar ve
@@ -201,7 +206,7 @@ httpd 2.1.5 ve sonrasında mevcuttur.
Protocol
Protocol
Bu yönerge, istekte dosya isminden sonra (dizinde belirtilen dosya bulunmayabilir) belirtilen yol verisinin kabul edilip edilmeyeceÄini @@ -259,15 +263,14 @@ httpd 2.1.5 ve sonrasında mevcuttur. normal olarak isteÄi reddederdi, böyle bir durumda bir betiÄi etkin kılmak için aÅaÄıdaki gibi bir yapılandırma kullanabilirsiniz:
-
- <Files "mypaths.shtml">
-
- Options +Includes
- SetOutputFilter INCLUDES
- AcceptPathInfo On
-
- </Files>
-
+<Files "mypaths.shtml"> + Options +Includes + SetOutputFilter INCLUDES + AcceptPathInfo On +</Files> ++ @@ -285,20 +288,18 @@ httpd 2.1.5 ve sonrasında mevcuttur. iÅlerken önce bu dizinlerde bu yönergede belirtilmiÅ yapılandırma dosyasını arar. Ãrnek: -
- AccessFileName .acl
-
AccessFileName .acl+
Sunucu, /usr/local/web/index.html
belgesini döndürmeden
önce,
- <Directory />
-
- AllowOverride None
-
- </Directory>
-
+<Directory /> + AllowOverride None +</Directory> ++
Åeklinde bir yapılandırma ile iptal edilmiÅ olmadıkça yönergeler için
/.acl
, /usr/.acl
,
@@ -338,9 +339,8 @@ httpd 2.1.5 ve sonrasında mevcuttur.
Genel AÄ ortam türlerinde (MIME türlerinde) kullanmak üzere IANAâda kayıtlı
karakter kümesi deÄerlerinden biri olmalıdır. Ãrnek:
- AddDefaultCharset utf-8
-
AddDefaultCharset utf-8+
AddDefaultCharset
yönergesi sadece, metin
kaynaklarının hepsinin aynı karakter kümesine sahip olduÄu bilindiÄi
@@ -370,8 +370,8 @@ httpd 2.1.5 ve sonrasında mevcuttur.
AllowEncodedSlashes
yönergesi kodlanmıŠdosya
yolu ayracı içeren URLâlere izin verir (/
yerine
@@ -479,6 +479,11 @@ httpd 2.1.5 ve sonrasında mevcuttur.
RewriteBase
,
RewriteCond
,
RewriteRule
+ yönergelerinin, mod_alias
modülündeki
+ Redirect
,
+ RedirectTemp
,
+ RedirectPermanent
,
+ RedirectMatch
)
yönergelerinin ve mod_actions
modülündeki
Action
yönergesinin kullanımına izin verilir.
@@ -554,14 +559,17 @@ httpd 2.1.5 ve sonrasında mevcuttur.
mekanizma diÄerlerinin deÄerlerini korumasına izin verirken belli bir
seçeneÄi deÄerini korumaya zorlayamaz.
+ AllowOverride Options=Indexes,MultiViews
+
Ãrnek:
-
- AllowOverride AuthConfig Indexes
-
AllowOverride AuthConfig Indexes+
Bu örnekte AuthConfig
ve Indexes
grubundaki
yönergeler bir dahili sunucu hatasına yol açmayacaktır.
Ãrnek:
-
- AllowOverride None
- AllowOverrideList Redirect RedirectMatch
-
+AllowOverride None +AllowOverrideList Redirect RedirectMatch ++
Yukarıdaki örnekte sadece Redirect
ve
RedirectMatch
yönergelerine izin verilmektedir. Tüm
@@ -619,10 +628,11 @@ httpd 2.1.5 ve sonrasında mevcuttur.
Ãrnek:
-
- AllowOverride AuthConfig
- AllowOverrideList CookieTracking CookieName
-
+AllowOverride AuthConfig +AllowOverrideList CookieTracking CookieName ++
Yukarıdaki örnekte AllowOverride
yönergesi AuthConfig
yönerge grubuna izin
@@ -714,9 +724,11 @@ httpd 2.1.5 ve sonrasında mevcuttur.
tam yol ServerRoot
yönergesinde belirtilene
göreli olacaktır.
- DefaultRuntimeDir scratch/
-
Ãrnek
++DefaultRuntimeDir scratch/ ++
DefaultRuntimeDir
için öntanımlı yer derleme
sırasında DEFAULT_REL_RUNTIMEDIR
#define satırı ile
@@ -755,9 +767,8 @@ için iptal edilmiÅtir.
uyumluluÄunu saÄlamak için, öntanımlı bir ortam türünün olmadıÄını
belirten none
deÄeriyle belirtilebilir. Ãrnek:
- DefaultType none
-
DefaultType None+
DefaultType None
sadece httpd-2.2.7 ve sonrasında
mevcuttur.
- <IfDefine TEST>
- Define servername test.example.com
- </IfDefine>
- <IfDefine !TEST>
- Define servername www.example.com
- Define SSL
- </IfDefine>
-
+<IfDefine TEST> + Define servername test.example.com +</IfDefine> +<IfDefine !TEST> + Define servername www.example.com + Define SSL +</IfDefine> +DocumentRoot /var/www/${servername}/htdocs ++
RewriteMap
sözdizimi ile
karıÅmalardan kaçınmak için deÄiÅken isimleri ikinokta ":" karakterleri
@@ -830,13 +843,12 @@ için iptal edilmiÅtir.
deÄil, ama <Directory /home/*/public_html>
eÅleÅecektir. Ãrnek:
- <Directory /usr/local/httpd/htdocs>
-
- Options Indexes FollowSymLinks
-
- </Directory>
-
+<Directory "/usr/local/httpd/htdocs"> + Options Indexes FollowSymLinks +</Directory> ++
dizin-yolu argümanlarını belirtirken dikkatli @@ -850,9 +862,12 @@ için iptal edilmiÅtir.
~
karakterine ek olarak düzenli
ifadeler de kullanılabilir. Ãrnek:
- <Directory ~ "^/www/.*/[0-9]{3}">
-
+<Directory ~ "^/www/[0-9]{3}"> + +</Directory> ++
yönergesi /www/
içindeki üç rakamdan oluÅan dizinlerle
eÅleÅecektir.
- <Directory />
-
- AllowOverride None
-
- </Directory>
-
- <Directory /home>
-
- AllowOverride FileInfo
-
- </Directory>
-
+<Directory /> + AllowOverride None +</Directory> + +<Directory "/home"> + AllowOverride FileInfo +</Directory> ++
bölümleri ile /home/web/dir/doc.html
belgesine eriÅirken
Åu aÅamalardan geçilir:
- <Directory ~ abc$>
-
- # ... yönergeler burada ...
-
- </Directory>
-
+<Directory ~ "abc$"> + # ... yönergeler burada ... +</Directory> ++
düzenli ifadeli bölümü, tüm normal <Directory>
bölümleri ve
.htaccess
dosyaları uygulanıncaya kadar
@@ -915,14 +926,12 @@ için iptal edilmiÅtir.
eriÅime izin vermek oluÅuna dikkat ediniz. Bunu Åöyle bir blokla
deÄiÅtirmeniz,
- <Directory />
-
- Order Deny,Allow
- Deny from All
-
- </Directory>
-
+<Directory /> + Require all denied +</Directory> ++
ve eriÅilebilir olmasını istediÄiniz dizinleri ayrıca belirtmeniz önerilir. Daha ayrıntılı bilgi edinmek için Güvenlik Ä°puçları belgesine @@ -956,9 +965,12 @@ için iptal edilmiÅtir. bir yönerge grubunu sarmalamakta kullanılır. Tek farkla argüman olarak bir düzenli ifade alır. Ãrnek:
-
- <DirectoryMatch "^/www/(.+/)?[0-9]{3}">
-
+<DirectoryMatch "^/www/(.+/)?[0-9]{3}"> + # ... +</DirectoryMatch> ++
yönergesi /www/
içindeki üç rakamdan oluÅan dizinlerle
eÅleÅecektir.
- DocumentRoot /usr/web
-
DocumentRoot "/usr/web"+
yapılandırması ile http://my.example.com/index.html
isteÄi /usr/web/index.html
ile eÅleÅtirilir.
@@ -1035,14 +1046,15 @@ için iptal edilmiÅtir.
<ElseIf>
bölümü uygulanmamıÅsa
kapsadıÄı yönergeleri uygular. ÃrneÄin:
- <If "-z req('Host')">
- ...
- </If>
- <Else>
- ...
- </Else>
-
+<If "-z req('Host')"> + # ... +</If> +<Else> + # ... +</Else> ++
Burada, <If>
yönergesi
Host: baÅlıksız HTTP/1.0 istekleriyle eÅleÅirken <Else>
Host: baÅlıklılarla
@@ -1079,17 +1091,18 @@ için iptal edilmiÅtir.
<ElseIf>
yönergesinin uygulanmadıÄı
takdirde uygular. Ãrnek:
- <If "-R '10.1.0.0/16'">
- ...
- </If>
- <ElseIf "-R '10.0.0.0/8'">
- ...
- </ElseIf>
- <Else>
- ...
- </Else>
-
+<If "-R '10.1.0.0/16'"> + #... +</If> +<ElseIf "-R '10.0.0.0/8'"> + #... +</ElseIf> +<Else> + #... +</Else> ++
<ElseIf>
bir isteÄin uzak adresi
10.0.0.0/8 aÄına aitse ama 10.1.0.0/16 aÄına ait deÄilse içerdiÄi
@@ -1148,20 +1161,18 @@ için iptal edilmiÅtir.
yapılandırmalarında dosya teslimatında bellek eÅlemlerinin kullanımını
Åu Åekilde iptal etmeniz gerekir:
- EnableMMAP Off
-
EnableMMAP Off+
Bu özellik, sadece NFS dosya sistemi üzerinde sunulan dosyaları kapsamak üzere Åu Åekilde kolayca kapatılabilir:
-
- <Directory "/nfs-dosya-yolu">
-
- EnableMMAP Off
-
- </Directory>
-
+<Directory "/nfs-dosyaları-yolu"> + EnableMMAP Off +</Directory> ++
Bu yönerge, dosya içeriÄinin istemciye teslimi için
httpd
ânin çekirdeÄin dosya gönderme desteÄini
@@ -1209,21 +1220,20 @@ için iptal edilmiÅtir.
Bu sorunlardan muzdarip sunucu yapılandırmaları için bu özelliÄi Åöyle etkin kılabilirsiniz:
-
- EnableSendfile On
-
EnableSendfile On+
Bu özellik, sadece bir aÄ dosya sistemi üzerinde sunulan dosyaları kapsamak üzere Åu Åekilde kolayca kapatılabilir:
-
- <Directory "/path-to-nfs-files">
-
- EnableSendfile Off
-
- </Directory>
-
EnableSendfile
yönergesinin .htaccess ve
+
+<Directory "/nfs-dosyaları-yolu"> + EnableSendfile Off +</Directory> ++ + +
EnableSendfile
yönergesinin .htaccess ve
diziniçi yapılandırmalarının mod_cache_disk
tarafından
desteklenmediÄini lütfen aklınızdan çıkarmayın.
EnableSendfile
yönergesinin sadece küresel
@@ -1245,24 +1255,26 @@ için iptal edilmiÅtir.
üretilmesi için kullanılabilir. Genelde kullanıldıÄı durum, gerekli
modüllerin yapılandırmada bulunmadıÄının raporlanmasıdır.
- # mod_include yüklü deÄilse bilelim
- <IfModule !include_module>
- Hata: mod_include mod_foo için gerekiyor. LoadModule ile yükleyin.
- </IfModule>
-
- # SSL veya NOSSL tanımlı mı bilelim
- <IfDefine SSL>
- <IfDefine NOSSL>
- Hata: Ne SSL ne de NOSSL tanımlı. Sadece biri tanımlı olsa yeter.
- </IfDefine>
- </IfDefine>
- <IfDefine !SSL>
- <IfDefine !NOSSL>
- Hata: Ya SSL ya da NOSSL tanımlı olmalı.
- </IfDefine>
- </IfDefine>
-
+# Ãrnek +# mod_include yüklü deÄilse bilelim +<IfModule !include_module> + Error "Hata: mod_include mod_foo için gerekiyor. LoadModule ile yükleyin." +</IfModule> + +# SSL veya NOSSL tanımlı mı bilelim +<IfDefine SSL> +<IfDefine NOSSL> + Error "Ne SSL ne de NOSSL tanımlı. Sadece biri tanımlı olsa yeter." +</IfDefine> +</IfDefine> +<IfDefine !SSL> +<IfDefine !NOSSL> + Error "Ya SSL ya da NOSSL tanımlı olmalı." +</IfDefine> +</IfDefine> ++ @@ -1285,8 +1297,8 @@ için iptal edilmiÅtir.
- ErrorDocument 500 http://hata.example.com/cgi-bin/dnmci
- ErrorDocument 404 /cgi-bin/bad_urls.pl
- ErrorDocument 401 /subscription_info.html
- ErrorDocument 403 "Kusura bakmayın, bugün hizmet veremiyoruz."
- ErrorDocument 403 Yasak!
-
+ErrorDocument 500 http://foo.example.com/cgi-bin/tester +ErrorDocument 404 /cgi-bin/bad_urls.pl +ErrorDocument 401 /subscription_info.html +ErrorDocument 403 "Kusura bakmayın, bugün hizmet veremiyoruz." ++
Bunlardan baÅka, Apache httpdânin kendi hata iletilerinin kullanılacaÄı
özel default
deÄeri ile belirtilebilir. Normal Åartlar
@@ -1318,14 +1330,14 @@ için iptal edilmiÅtir.
default
deÄeri açıkça belirtilerek örnekteki gibi
zorlanabilir:
- ErrorDocument 404 /cgi-bin/bad_urls.pl
- <Directory /web/docs>
-
- ErrorDocument 404 default
-
- </Directory>
-
+ErrorDocument 404 /cgi-bin/bad_urls.pl + +<Directory /web/docs> + ErrorDocument 404 default +</Directory> ++
ErrorDocument
yönergesinde bir uzak URL (önünde
http
bulunan bir yol) belirtildiÄinde, belge aynı sunucuda
@@ -1385,17 +1397,15 @@ için iptal edilmiÅtir.
dizininin ServerRoot
ile
belirtilen sunucu kök dizinine göre belirtildiÄi varsayılır.
- ErrorLog /var/log/httpd/error_log
-
ErrorLog "/var/log/httpd/error_log"+
dosya-yolu bir boru imi "|
" ile baÅlatıldıÄı
takdirde hata iletilerinin hata günlüÄünü iÅleme sokacak komuta
borulanacaÄı varsayılır.
- ErrorLog "|/usr/local/bin/httpd_errors"
-
ErrorLog "|/usr/local/bin/httpd_errors"+
Daha fazla bilgi için borulu günlüklere bakınız.
@@ -1410,9 +1420,8 @@ için iptal edilmiÅtir. deÄiÅtirilmiÅse, belirtilen en son oluÅum tüm sunucuyu etkileyecektir. -
- ErrorLog syslog:user
-
ErrorLog syslog:user+
GÃVENLÄ°K: Günlük dosyalarının saklandıÄı dizin, sunucuyu baÅlatan kullanıcı dıÅındakiler tarafından yazılabilir olduÄu takdirde @@ -1447,9 +1456,11 @@ için iptal edilmiÅtir. hata iletisine ek olarak günlüklenecek ek bilgiyi belirtmek için kullanılabilir.
-
- ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
-
+#Basit örnek +ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M" ++
Ä°lk deÄiÅtirge olarak connection
veya request
belirtilmesi ek biçemlerin belirtilebilmesini saÄlar. Böylece, belli bir
@@ -1574,14 +1585,15 @@ için iptal edilmiÅtir.
durumunda günlük satırlarının ait olduÄu baÄlantı veya isteÄi
baÄdaÅtırmak için kullanılabilir. %L
biçem dizgesi ayrıca
mod_log_config
modülünde eriÅim günlüÄü iletilerini
- hata günlüÄü iletileriyle ilÅklendirmek için de kullanılabilmektedir.
+ hata günlüÄü iletileriyle iliÅklendirmek için de kullanılabilmektedir.
mod_unique_id
modülü yüklüyse onun eÅsiz kimliÄi
istekler için günlük kimliÄi olarak kullanılacaktır.
- ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a]
- %M% ,\ referer\ %{Referer}i"
-
+#Ãrnek (Evreli MPM'ler için öntanımlı biçim) +ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i" ++
Bunun hata iletilerindeki sonuçları Åöyle olabilir:
@@ -1592,18 +1604,21 @@ için iptal edilmiÅtir.Dikkat edin, yukarıda açıklandıÄı gibi, bazı alanlar tanımlanmadıklarından tamamen yoksayılır.
-
- ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a]
- %M% ,\ referer\ %{Referer}i"
-
+#Ãrnek (2.2.x biçimine benzer) +ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i" ++ + +
+#Ä°stek/baÄlantı günlük kimlikli geliÅkin bir örnek +ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M" +ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T" +ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'" +ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'" +ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A" +-
- ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
- ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
- ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
- ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
- ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
-
FileETag INode MTime Size
FileETag INode MTime Size+
ETag
alanı dahil edilmez.dosya-adı argümanının bir dosya ismi veya bir dosya ismi
kalıbı içermesi gerekir. Bir dosya ismi kalıbındaki her ?
imi bir karakterle eÅleÅtirilirken *
imi karakter dizileri
- ile eÅleÅtirilir. ~
imine ek olarak düzenli ifadeler de kullanılabilir. ÃrneÄin
+<Files "zat.html"> + # zat.html dosyasına uygulanacakları buraya koy +</Files> + +<Files "?at.*"> + # Buradakiler hat.html, kat.html, tat.html ve benzerlerine uygulanır. +</Files> ++ + +
~
imine ek olarak düzenli ifadeler de kullanılabilir. ÃrneÄin
+<Files ~ "\.(gif|jpe?g|png)$"> + #... +</Files> +-
- <Files ~ "\.(gif|jpe?g|png)$">
-
satırı en bilinen resim dosyası biçimleriyle eÅleÅecektir. Bunun
yerine <FilesMatch>
@@ -1781,9 +1813,12 @@ için iptal edilmiÅtir.
yönergelerin etki alanını <Files>
yönergesinin yaptıÄı gibi dosya
isimlerine göre sınırlandırır. Ancak, argüman olarak bir düzenli ifade kabul eder. ÃrneÄin
- <FilesMatch "\.(gif|jpe?g|png)$">
-
+<FilesMatch "\.(gif|jpe?g|png)$"> + # ... +</FilesMatch> ++
satırı en bilinen resim dosyası biçimleriyle eÅleÅecektir.
@@ -1817,9 +1852,8 @@ için iptal edilmiÅtir..gif
uzantısı belirtmek istemiyorsanız Åu yapılandırmayı
kullanabilirsiniz:
-
- ForceType image/gif
-
ForceType image/gif+
Bu yönerge, AddType
yönergesi
üzerinden ve mime.types
dosyasında örtük olarak
@@ -1828,21 +1862,19 @@ için iptal edilmiÅtir.
Ayrıca, daha genel ForceType
ayarlarını da
None
deÄeriyle geçersiz kılabilirsiniz:
- # tüm dosyaların image/gif olarak sunulması için:
- <Location /images>
-
- ForceType image/gif
-
- </Location>
-
- # normal MIME-türüne geri dönmek için:
- <Location /images/mixed>
-
- ForceType None
-
- </Location>
-
+# tüm dosyaların image/gif olarak sunulması için: +<Location /images> + ForceType image/gif +</Location> + +# normal MIME-türüne geri dönmek için: +<Location /images/mixed> + ForceType None +</Location> ++ +
Bu yönerge, öncelikle dosya sisteminden sunulan duruk dosyalar için
üretilen içerik türlerini geçersiz kılar. Duruk dosyaların haricindeki
özkaynaklar için yanıt üretecinin genelde bir Content-Type
@@ -1929,9 +1961,8 @@ takdirde uygulanacak yönergeleri barındırır.
anında deÄerlendirir ve ifadenin sonucu doÄru olduÄu takdirde içerdiÄi
yönergeleri uygular. Ãrnek:
- <If "-z req('Host')">
-
<If "-z req('Host')">+
Bir Host: baÅlıÄı içermeyen HTTP/1.0 istekleriyle
eÅleÅir. Ä°fadeler, dizge karÅılaÅtırması (=
,
@@ -1940,9 +1971,8 @@ takdirde uygulanacak yönergeleri barındırır.
-z
, -f
, ...) için kabuktakilere benzer çeÅitli
iÅleçler içerebilir. Ayrıca, düzenli ifadeleri,
- <If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">
-
<If "%{QUERY_STRING} =~ /(delete|commit)=.*?elem/">+
kabuk tarzı kalıp eÅleÅtirme ve birçok baÅka iÅlemi kullanmak da
mümkündür. Bu iÅlemler istek baÅlıklarında (req
), ortam
@@ -2009,32 +2039,23 @@ sokulacak yönergeleri sarmalar.
olabilir, dolayısıyla çok parametreli basit sınamalar gerçeklenebilir.
Ãrnek:
- httpd -DReverseProxy -DUseCache -DMemCache ...
-
- # httpd.conf
- <IfDefine ReverseProxy>
-
- LoadModule proxy_module modules/mod_proxy.so
- LoadModule proxy_http_module modules/mod_proxy_http.so
- <IfDefine UseCache>
-
- LoadModule cache_module modules/mod_cache.so
- <IfDefine MemCache>
-
- LoadModule mem_cache_module modules/mod_mem_cache.so
-
- </IfDefine>
- <IfDefine !MemCache>
-
- LoadModule cache_disk_module modules/mod_cache_disk.so
-
- </IfDefine>
-
- </IfDefine>
-
- </IfDefine>
-
httpd -DReverseProxy -DUseCache -DMemCache ...
+<IfDefine ReverseProxy> + LoadModule proxy_module modules/mod_proxy.so + LoadModule proxy_http_module modules/mod_proxy_http.so + <IfDefine UseCache> + LoadModule cache_module modules/mod_cache.so + <IfDefine MemCache> + LoadModule mem_cache_module modules/mod_mem_cache.so + </IfDefine> + <IfDefine !MemCache> + LoadModule cache_disk_module modules/mod_cache_disk.so + </IfDefine> + </IfDefine> +</IfDefine> ++ @@ -2097,8 +2118,7 @@ yönergeleri sarmalar.
Bu yönerge sunucu yapılandırma dosyalarının baÅka dosyaları içermesini mümkün kılar.
@@ -2125,34 +2145,34 @@ yönergeleri sarmalar.Ãrnekler:
-
- Include /usr/local/apache2/conf/ssl.conf
- Include /usr/local/apache2/conf/vhosts/*.conf
-
+Include /usr/local/apache2/conf/ssl.conf +Include /usr/local/apache2/conf/vhosts/*.conf ++
Veya dizinler ServerRoot
dizinine
göre belirtilebilir:
- Include conf/ssl.conf
- Include conf/vhosts/*.conf
-
+Include conf/ssl.conf +Include conf/vhosts/*.conf ++
Dosya kalıbı karakterleri yolun dizin ve dosya parçalarına
yerleÅtirilebilir. conf/vhosts
altında en azından bir
*.conf
içeren hiçbir alt dizin yoksa bu örnek baÅarısız
olacaktır:
- Include conf/vhosts/*/*.conf
-
Include conf/vhosts/*/*.conf+
Bunun yerine, dizin ve dosyaların eksikliÄi durumunda aÅaÄıdaki komut sadece yoksayılır:
-
- IncludeOptional conf/vhosts/*/*.conf
-
IncludeOptional conf/vhosts/*/*.conf+
POST
, PUT
ve DELETE
yöntemleri
için uygulanmakta, diÄer tüm yöntemler korumasız bırakılmaktadır:
-
- <Limit POST PUT DELETE>
-
- Require valid-user
-
- </Limit>
-
+<Limit POST PUT DELETE> + Require valid-user +</Limit> ++
Birden fazla bölümde kullanılabilecek yöntem isimleri: GET
,
POST
, PUT
, DELETE
,
@@ -2311,18 +2330,15 @@ sarmalar.
POST
istekleri için yetkilendirilecek ve tüm durumlarda
Require group editors
yönergesi yoksayılacaktır:
- <LimitExcept GET>
-
- Require valid-user
-
- </LimitExcept>
- <Limit POST>
-
- Require group editors
-
- </Limit>
-
+<LimitExcept GET> + Require valid-user +</LimitExcept> +<Limit POST> + Require group editors +</Limit> ++ @@ -2347,13 +2363,12 @@ kullanılacak eriÅim sınırlayıcıları sarmalar.
Ãrnek:
-
- <LimitExcept POST GET>
-
- Require valid-user
-
- </LimitExcept>
-
+<LimitExcept POST GET> + Require valid-user +</LimitExcept> ++ @@ -2367,7 +2382,6 @@ belirler.
ÃrneÄin, özgün istekleri dahili olarak bir CGI betiÄine yönlendiren
Action
yönergesi
@@ -2389,9 +2403,8 @@ belirler.
sayı belirtilirse iki sınırlama için de aynı deÄer
kullanılır.
- LimitInternalRecursion 5
-
LimitInternalRecursion 5+ @@ -2431,9 +2444,8 @@ uzunluÄunu sınırlar. yüklenebilecek dosya boyutunu 100 kB ile sınırlamak isterseniz yönergeyi Åöyle kullanabilirsiniz: -
- LimitRequestBody 102400
-
LimitRequestBody 102400+
Bu yönergenin vekil istekleri tarafından nasıl yorumlandıÄı
mod_proxy
belgesinde ayrıntılı olarak
@@ -2476,9 +2488,8 @@ sınırlar.
Ãrnek:
-
- LimitRequestFields 50
-
LimitRequestFields 50+
Ä°sme dayalı sanal konaklar kullanıldıÄında, bu yönergenin deÄeri, @@ -2516,9 +2527,8 @@ sınırlar.
Ãrnek:
-
- LimitRequestFieldSize 4094
-
LimitRequestFieldSize 4094+
Ãrnek:
-
- LimitRequestLine 4094
-
LimitRequestLine 4094+
Ãrnek:
-
- LimitXMLRequestBody 0
-
LimitXMLRequestBody 0+
/private1/file.txt
istekleri için sarmalanan yönergeler
uygulanacaktır, fakat /private1other
isteÄine
uygulanmayacaktır.
-
- <Location /private1>
- ...
-
+<Location /private1> + # ... +</Location> ++ +
AÅaÄıdaki örnekte yer belirtimi bir bölü çizgisi ile bitirilmiÅtir.
/private2/
ve /private2/file.txt
istekleri
için sarmalanan yönergeler uygulanacaktır, fakat /private2
ve /private2other
isteklerine uygulanmayacaktır.
- <Location /private2/>
- ...
-
+<Location /private2/> + # ... +</Location> ++
<Location>
ne zaman
kullanılmalı
- <Location ~ "/(ek|hususi)/veri">
-
+<Location ~ "/(ek|hususi)/veri"> + #... +</Location> ++
yönergesi /ek/veri
ve /hususi/veri
alt
dizgeleriyle eÅleÅecektir. <LocationMatch>
yönergesi <Location>
yönergesinin düzenli ifade sürümüne
@@ -2700,14 +2718,13 @@ sınırlar.
example.com
âdan gelen isteklere izin vermek için Åöyle bir
uygulama yapabilirsiniz:
- <Location /status>
-
- SetHandler server-status
- Require host example.com
-
- </Location>
-
+<Location /status> + SetHandler server-status + Require host example.com +</Location> ++
Bölü çizgisinin URL içinde bulunduÄu yere baÄlı olarak özel anlamları
@@ -2752,9 +2769,12 @@ uygulanır.
yönergelerin etki alanını <Location>
yönergesinin yaptıÄı gibi belirtilen URLâlerle
sınırlar. Ancak argüman olarak basit bir dizge deÄil bir düzenli ifade alır. ÃrneÄin,
- <LocationMatch "/(ek|hususi)/veri">
-
+<LocationMatch "/(ek|hususi)/veri"> + # ... +</LocationMatch> ++
yönergesi /ek/veri
ve /hususi/veri
alt
dizgeleriyle eÅleÅecektir.
Ãrnek:
-
- LogLevel notice
-
LogLevel notice+ +
Günlük iletileri normal bir dosyaya yazılırken notice
@@ -2929,26 +2949,34 @@ uygulanır.
_module
sonekli modül ismi belirtmek mümkündür.
Yani, aÅaÄıdaki üç belirtim eÅdeÄerdedir:
- LogLevel info ssl:warn
- LogLevel info mod_ssl.c:warn
- LogLevel info ssl_module:warn
-
+LogLevel info ssl:warn +LogLevel info mod_ssl.c:warn +LogLevel info ssl_module:warn ++
Ayrıca seviyeyi dizin baÄlamında deÄiÅtirmek de mümkündür:
-
- LogLevel info
- <Directory /usr/local/apache/htdocs/app>
- LogLevel debug
- </Files>
-
+LogLevel info +<Directory "/usr/local/apache/htdocs/app"> + LogLevel debug +</Directory> ++
Ãrnek:
-
- MaxKeepAliveRequests 500
-
MaxKeepAliveRequests 500+
sysvsem
ile
deÄiÅtirilmektedir.
-
- Mutex sysvsem default
- Mutex fcntl:/var/httpd/locks mpm-accept
-
+Mutex sysvsem default +Mutex fcntl:/var/httpd/locks mpm-accept ++
Sembolik baÄlar izlense bile <Directory>
bölümleriyle eÅleÅen dosya yolları
deÄiÅtirilmez.
Ayrıca, bu seçenek bir <Location>
bölümü içinde belirtildiÄi takdirde yok
- sayılır.
FollowSymLinks
ve
+ SymLinksIfOwnerMatch
Options
sadece <Directory>
bölümlerinde veya
+ .htaccess
dosyaları içinde çalıÅır.
Sembolik baÄ sınamaları, atlatılabilir yarıŠkoÅullarına konu olduÄundan bu seçeneÄin yokluÄu bir güvenlik sınırlaması olarak deÄerlendirilmemelidir.
@@ -3386,11 +3415,13 @@ uygulanır.Bu seçenek bir <Location>
bölümü içinde belirtildiÄinde yok
- sayılır.
FollowSymLinks
ve
+ SymLinksIfOwnerMatch
Options
sadece <Directory>
bölümlerinde veya
+ .htaccess
dosyaları içinde çalıÅır.
Sembolik baÄ sınamaları, atlatılabilir yarıŠkoÅullarına konu olduÄundan bu seçenek bir güvenlik sınırlaması olarak - deÄerlendirilmemelidir.
ÃrneÄin, +
ve -
imleri olmaksızın,
- <Directory /web/docs>
-
- Options Indexes FollowSymLinks
-
- </Directory>
-
- <Directory /web/docs/spec>
-
- Options Includes
-
- </Directory>
-
+<Directory "/web/docs"> + Options Indexes FollowSymLinks +</Directory> + +<Directory "/web/docs/spec"> + Options Includes +</Directory> ++
yapılandırmasıyla /web/docs/spec
dizininde sadece
Includes
seçeneÄi etkin olacaktır. Bununla birlikte, ikinci
Options
yönergesinde +
ve
-
imleri kullanılırsa,
- <Directory /web/docs>
-
- Options Indexes FollowSymLinks
-
- </Directory>
-
- <Directory /web/docs/spec>
-
- Options +Includes -Indexes
-
- </Directory>
-
+<Directory "/web/docs"> + Options Indexes FollowSymLinks +</Directory> + +<Directory "/web/docs/spec"> + Options +Includes -Indexes +</Directory> ++
yapılandırmasıyla /web/docs/spec
dizininde
FollowSymLinks
ve Includes
seçenekleri etkin
@@ -3482,9 +3507,8 @@ uygulanır.
ÃrneÄin, https
'i standartdıÅı bir portta çalıÅtırmak
isterseniz protokolü Åöyle belirtebilirsiniz:
- Protocol https
-
Protocol https+
Protokolü Listen
yönergesini
kullanarak da belirtebilirsiniz.
AcceptFilter
AcceptFilter
Listen
Registry-Strict
seçeneÄi Apache
-HTTP Sunucusunun 2.0 ve sonraki sürümleri için geçerlidir.Bu yönerge Apache httpdânin CGI betiklerini çalıÅtıracak yorumlayıcıyı
nasıl tespit edeceÄini belirler. Script
öntanımlı olup
@@ -3630,16 +3654,14 @@ HTTP Sunucusunun 2.0 ve sonraki sürümleri için geçerlidir.
kullanacaÄını belirtir. Win32 sistemlerinde bu satır genellikle
Åöyledir:
- #!C:/Perl/bin/perl.exe
-
#!C:/Perl/bin/perl.exe+
perl
yorumlayıcının yeri PATH
deÄiÅkeninde
kayıtlı ise Åöyle de olabilir:
- #!perl
-
#!perl+
ScriptInterpreterSource Registry
deÄeri ise betik dosyası
uzantısının (.pl
gibi) Windows Sicili içindeki
@@ -3734,9 +3756,8 @@ HTTP Sunucusunun 2.0 ve sonraki sürümleri için geçerlidir.
burada belirtilecek adresin sırf bu iÅe adanmıŠbir adres olması daha
iyidir. Ãrnek:
- ServerAdmin www-admin@example.com
-
ServerAdmin www-admin@foo.example.com+
ServerAlias
dosya adı kalıp
karakterleri içerebilir.
-
- <VirtualHost *:80>
-
- ServerName server.example.com
- ServerAlias server server2.example.com server2
- ServerAlias *.example.com
- UseCanonicalName Off
- # ...
-
- </VirtualHost>
-
+<VirtualHost *:80> + ServerName server.example.com + ServerAlias server server2.example.com server2 + ServerAlias *.example.com + UseCanonicalName Off + # ... +</VirtualHost> ++
Ä°sme dayalı sanal konaklardan en iyi eÅleÅme kümesinde olanlar
yapılandırmada göründükleri sıraya göre iÅleme sokulur. Joker
kullanımları arasında fark gözetilmeksizin ServerName
veya ServerAlias
yönergesi eÅleÅen ilk sanal konak
kullanılır.
VirtualHost
bölümü içindeki isimlerin sırası
+ (jokersiz) ServerAlias
yönergesindeki gibi ele
+ alınır.
- ServerName www.example.com
-
ServerName www.example.com+
ServerName
yönergesi sunucu tanımının içinde
herhangi bir yerde görünebilirse de her göründüÄü yerde bir öncekini
@@ -3897,9 +3920,8 @@ kullanılacak konak adları için baÅka isimler belirtebilmeyi saÄlar.
logs/
gibi alt dizinler içerir. Include
, LoadModule
gibi diÄer yapılandırma
yönergelerindeki göreli yollar bu dizine göre ele alınır.
- ServerRoot /home/httpd
-
ServerRoot "/home/httpd"+
ServerRoot
için öntanımlı yer configure
betiÄinin
--prefix
seçeneÄi ile deÄiÅtirilebilir ve sunucunun çoÄu
@@ -3965,7 +3987,7 @@ kullanılacak konak adları için baÅka isimler belirtebilmeyi saÄlar.
ServerTokens Full
(veya belirtilmezse)Server: Apache/2.4.1
+ - Sunucu Åunu gönderir (örnek):
Server: Apache/2.4.2
(Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod[uctOnly]
@@ -3982,10 +4004,10 @@ kullanılacak konak adları için baÅka isimler belirtebilmeyi saÄlar.
ServerTokens Min[imal]
- Sunucu Åunu gönderir (örnek):
Server:
- Apache/2.4.1
+ Apache/2.4.2
ServerTokens OS
Server: Apache/2.4.1
+ - Sunucu Åunu gönderir (örnek):
Server: Apache/2.4.2
(Unix)
.htaccess
dosyasına Åöyle bir satır
koyabilirsiniz:
-
- SetHandler imap-file
-
SetHandler imap-file+
BaÅka bir örnek: http://localhost/status
gibi bir istek
yapıldıÄında sunucunun bir durum bilgisi göstermesi için
httpd.conf
dosyasına Åöyle bir satır koyabilirsiniz:
- <Location /status>
-
- SetHandler server-status
-
- </Location>
-
+<Location "/status"> + SetHandler server-status +</Location> ++ + +
Bu yönergeyi ayrıca, belli bir dosya uzantısına sahip dosyalara uygun + bir eylemci atamak için de kullanabilirsiniz. örnek:
+ ++<FilesMatch \.php$> + SetHandler application/x-httpd-php +</FilesMatch> ++ -
Evvelce tanımlanmıŠbir SetHandler
yönergesini
+
Evvelce tanımlanmıŠbir SetHandler
yönergesini
None
deÄeriyle geçersiz hale getirebilirsiniz.
ÃrneÄin, aÅaÄıdaki yapılandırma ile /www/data/
dizinindeki
bütün dosyalar sunucu taraflı içerik kapsamında ele alınacaktır.
- <Directory /www/data/>
-
- SetOutputFilter INCLUDES
-
- </Directory>
-
+<Directory "/www/data/"> + SetOutputFilter INCLUDES +</Directory> ++
Birden fazla süzgeç belirtilmek istenirse birbirlerinden noktalı virgüllerle ayrılmalı ve çıktıyı iÅleyecekleri sıraya uygun olarak @@ -4162,8 +4191,6 @@ gerçekleÅmesi için sunucunun geçmesini bekleyeceÄi süre.
Bu yönerge çekirdek ve vekil (mod_proxy
) sunucuların
her ikisi için öntanımlı TRACE
davranıÅını deÄiÅtirir.
@@ -4243,8 +4270,7 @@ gerçekleÅmesi için sunucunun geçmesini bekleyeceÄi süre.
http://www.example.com/splat/
adresine yönlendirecektir.
EÄer kimlik doÄrulama da etkinse bu kullanıcının iki defa kimlik
doÄrulamasına sokulmasına sebep olacaktır (bir kere www
- için bir kere de www.example.com
için; daha fazla bilgi için
- SSSâye bakınız). Fakat UseCanonicalName Off
+ için bir kere de www.example.com
için; daha fazla bilgi için SSSâye bakınız). Fakat UseCanonicalName Off
olsaydı Apache httpd isteÄi http://www/splat/
adresine
yönlendirecekti.
- <VirtualHost 10.1.2.3:80>
-
- ServerAdmin webmaster@host.example.com
- DocumentRoot /www/docs/host.example.com
- ServerName host.example.com
- ErrorLog logs/host.example.com-error_log
- TransferLog logs/host.example.com-access_log
-
- </VirtualHost>
-
+<VirtualHost 10.1.2.3:80> + ServerAdmin webmaster@host.example.com + DocumentRoot /www/docs/host.example.com + ServerName host.example.com + ErrorLog logs/host.example.com-error_log + TransferLog logs/host.example.com-access_log +</VirtualHost> ++
Ä°steÄe baÄlı port numarasını belirtmeyi mümkün kılmak için IPv6 adresleri köÅeli ayraç içine alınır. IPv6 adresi kullanılan bir örnek:
-
- <VirtualHost [2001:db8::a00:20ff:fea7:ccea]>
-
- ServerAdmin webmaster@host.example.com
- DocumentRoot /www/docs/host.example.com
- ServerName host.example.com
- ErrorLog logs/host.example.com-error_log
- TransferLog logs/host.example.com-access_log
-
- </VirtualHost>
-
+<VirtualHost [2001:db8::a00:20ff:fea7:ccea]:80> + ServerAdmin webmaster@host.example.com + DocumentRoot /www/docs/host.example.com + ServerName host.example.com + ErrorLog logs/host.example.com-error_log + TransferLog logs/host.example.com-access_log +</VirtualHost> ++
Her sanal konaÄın ya farklı bir IP adresi ve port ile ya da farklı bir
konak ismiyle eÅleÅmesi gerekir. Birinci durumda sunucu makinesinin çok
diff --git a/docs/manual/mod/core.xml.meta b/docs/manual/mod/core.xml.meta
index e78755527a..189b445c69 100644
--- a/docs/manual/mod/core.xml.meta
+++ b/docs/manual/mod/core.xml.meta
@@ -12,6 +12,6 @@
Bu belgede Apache HTTP Sunucusunun 2.2 ve 2.4 sürümleri arasındaki baÅlıca farklara deÄinilmiÅtir. 2.0 sürümüne göre yeni özellikler için Apache 2.2âde Yeni olan Ãzellikler @@ -44,11 +43,13 @@
fcgistarter
htcacheclean
rotatelogs