comparison xml/tr/docs/http/server_names.xml @ 271:4c6d2c614d2c

Cleaned up XML tag mess: - all of <parameter> and <code>, and some of <dirname>, <value>, and <command> were replaced by <literal>; - the rest of <dirname> were replaced by links; - <argument> were replaced by <value>; - <value> is now rendered in HTML in italic; - <literal> and <path> can now contain <value>. Cleaned up terminology mess: - directives take "parameters".
author Ruslan Ermilov <ru@nginx.com>
date Fri, 23 Dec 2011 17:29:59 +0000
parents 7db449e89e92
children a413dffb0557
comparison
equal deleted inserted replaced
270:945d7299c26c 271:4c6d2c614d2c
7 translator="Altan Tanrıverdi"> 7 translator="Altan Tanrıverdi">
8 8
9 <section> 9 <section>
10 10
11 <para> 11 <para>
12 Sunucu adları <dirname>server_name</dirname> yönergesi kullanılarak tanımlanırlar ve gelen bir talep için hangi server bloğunun kullanılacağını belirlerler. Ayrıca bakınız &ldquo;<a href="/tr/docs/http/request_processing.xml" />&rdquo;. Gerçek, wildcard veya düzenli ifadeler şeklinde tanımlanabilirler. 12 Sunucu adları <literal>server_name</literal> yönergesi kullanılarak tanımlanırlar ve gelen bir talep için hangi server bloğunun kullanılacağını belirlerler. Ayrıca bakınız &ldquo;<a href="/tr/docs/http/request_processing.xml" />&rdquo;. Gerçek, wildcard veya düzenli ifadeler şeklinde tanımlanabilirler.
13 13
14 <programlisting> 14 <programlisting>
15 server { 15 server {
16 listen 80; 16 listen 80;
17 server_name nginx.org www.nginx.org; 17 server_name nginx.org www.nginx.org;
66 66
67 <section id="wildcard_names" 67 <section id="wildcard_names"
68 name="Wildcard adlar"> 68 name="Wildcard adlar">
69 69
70 <para> 70 <para>
71 Bir wildcard ad ancak başlangıçta veya bitişte * ifadesini içerir ve nokta ile sınırlandırılır. <dirname>www.*.nginx.org</dirname> ve <dirname>w*.nginx.org</dirname> adları geçersizdir. Ancak bu adlar düzenli ifadeler ile geçerli hale getirilebilir, örneğin, <dirname>~^www\..+\.nginx\.org$</dirname> ve <dirname>~^w.*\.nginx\.org$</dirname>. Buradaki * bir çok eşleşmeyi tanımlayabilir. <dirname>*.nginx.org</dirname> ifadesi <url>www.nginx.org</url> ve <url>www.sub.nginx.org</url> adlarına karşılık gelebilir. 71 Bir wildcard ad ancak başlangıçta veya bitişte * ifadesini içerir ve nokta ile sınırlandırılır. <literal>www.*.nginx.org</literal> ve <literal>w*.nginx.org</literal> adları geçersizdir. Ancak bu adlar düzenli ifadeler ile geçerli hale getirilebilir, örneğin, <literal>~^www\..+\.nginx\.org$</literal> ve <literal>~^w.*\.nginx\.org$</literal>. Buradaki * bir çok eşleşmeyi tanımlayabilir. <literal>*.nginx.org</literal> ifadesi <url>www.nginx.org</url> ve <url>www.sub.nginx.org</url> adlarına karşılık gelebilir.
72 </para> 72 </para>
73 73
74 <para> 74 <para>
75 <dirname>.nginx.org</dirname> şeklindeki bir wildcard <dirname>nginx.org</dirname> gerçek adı ile <dirname>*.nginx.org</dirname> wildcard adına karşılık gelir. 75 <literal>.nginx.org</literal> şeklindeki bir wildcard <literal>nginx.org</literal> gerçek adı ile <literal>*.nginx.org</literal> wildcard adına karşılık gelir.
76 </para> 76 </para>
77 77
78 </section> 78 </section>
79 79
80 80
120 PCRE kütüphanesi ile ad yakalama işlemi de şu şekildedir: 120 PCRE kütüphanesi ile ad yakalama işlemi de şu şekildedir:
121 121
122 <table note="yes"> 122 <table note="yes">
123 123
124 <tr> 124 <tr>
125 <td><code>?&lt;<i>name</i>&gt;</code></td> 125 <td><literal>?&lt;<value>name</value>&gt;</literal></td>
126 <td>Perl 5.10 uyumlu sentaks, PCRE-7.0 ile gelmiştir.</td> 126 <td>Perl 5.10 uyumlu sentaks, PCRE-7.0 ile gelmiştir.</td>
127 </tr> 127 </tr>
128 128
129 <tr> 129 <tr>
130 <td><code>?'<i>name</i>'</code></td> 130 <td><literal>?'<value>name</value>'</literal></td>
131 <td>Perl 5.10 uyumlu sentaks, PCRE-7.0 ile gelmiştir.</td> 131 <td>Perl 5.10 uyumlu sentaks, PCRE-7.0 ile gelmiştir.</td>
132 </tr> 132 </tr>
133 133
134 <tr> 134 <tr>
135 <td><code>?P&lt;<i>name</i>&gt;</code></td> 135 <td><literal>?P&lt;<value>name</value>&gt;</literal></td>
136 <td>Python uyumlu sentaks, PCRE-4.0 ile gelmiştir.</td> 136 <td>Python uyumlu sentaks, PCRE-4.0 ile gelmiştir.</td>
137 </tr> 137 </tr>
138 138
139 </table> 139 </table>
140 140
142 142
143 <programlisting> 143 <programlisting>
144 pcre_compile() failed: unrecognized character after (?&lt; in ... 144 pcre_compile() failed: unrecognized character after (?&lt; in ...
145 </programlisting> 145 </programlisting>
146 146
147 bu PCRE kütüphanesini eski olduğu ve <dirname>?P&lt;<i>name</i>&gt;</dirname> şeklinde kullanmanız gerektiği anlamına gelir. 147 bu PCRE kütüphanesini eski olduğu ve <literal>?P&lt;<value>name</value>&gt;</literal> şeklinde kullanmanız gerektiği anlamına gelir.
148 Yakalama ayrıca dijital formda da olabilir: 148 Yakalama ayrıca dijital formda da olabilir:
149 149
150 <programlisting> 150 <programlisting>
151 server { 151 server {
152 server_name ~^(www\.)?(.+)$; 152 server_name ~^(www\.)?(.+)$;
166 166
167 <section id="miscellaneous_names" 167 <section id="miscellaneous_names"
168 name="Diğer muhtelif adlar"> 168 name="Diğer muhtelif adlar">
169 169
170 <para> 170 <para>
171 Eğer server bloğu içerisinde bir <dirname>server_name</dirname> tanımlanmamışsa nginx, sunucu adı olarak <i>hostname</i> ifadesini kullanır. 171 Eğer server bloğu içerisinde bir <literal>server_name</literal> tanımlanmamışsa nginx, sunucu adı olarak <i>hostname</i> ifadesini kullanır.
172 </para> 172 </para>
173 173
174 <para> 174 <para>
175 Eğer varsayılan dışındaki bir server bloğuna gelen ve header bilgisinde &ldquo;Host&rdquo; datası yer almayan bir talebi işlemek isterseniz boş bir ad kullanmak zorundasınız: 175 Eğer varsayılan dışındaki bir server bloğuna gelen ve header bilgisinde &ldquo;Host&rdquo; datası yer almayan bir talebi işlemek isterseniz boş bir ad kullanmak zorundasınız:
176 176
214 Ayrıca &ldquo;--&rdquo;, &ldquo;!@#&rdquo; ve benzeri ifadeler de kullanabilirsiniz. 214 Ayrıca &ldquo;--&rdquo;, &ldquo;!@#&rdquo; ve benzeri ifadeler de kullanabilirsiniz.
215 </para> 215 </para>
216 216
217 <para> 217 <para>
218 nginx, 0.6.25 versiyonuna kadar, bir catch-all adı olmak için hatalı bir şekilde yorumlanan &ldquo;*&rdquo; özel adını destekliyordu. 218 nginx, 0.6.25 versiyonuna kadar, bir catch-all adı olmak için hatalı bir şekilde yorumlanan &ldquo;*&rdquo; özel adını destekliyordu.
219 Fakat bu bir catch-all veya wildcard sunucu adı olarak fonksiyonel değil. Bunun yerine, <dirname>server_name_in_redirect</dirname> yönergesini kullanarak fonksiyonelliği sağlamaya başladık. 219 Fakat bu bir catch-all veya wildcard sunucu adı olarak fonksiyonel değil. Bunun yerine, <literal>server_name_in_redirect</literal> yönergesini kullanarak fonksiyonelliği sağlamaya başladık.
220 &ldquo;*&rdquo; özel karakteri artık desteklenmiyor, bu yüzden <dirname>server_name_in_redirect</dirname> yönergesi kullanılmalıdır. 220 &ldquo;*&rdquo; özel karakteri artık desteklenmiyor, bu yüzden <literal>server_name_in_redirect</literal> yönergesi kullanılmalıdır.
221 Not: <dirname>server_name</dirname> yönergesini kullanan varsayılan sunucuyu veya catch-all adını belirtmenin bir yolu bulunmuyor. 221 Not: <literal>server_name</literal> yönergesini kullanan varsayılan sunucuyu veya catch-all adını belirtmenin bir yolu bulunmuyor.
222 Bu, <dirname>server_name</dirname> yönergesinin değil, <dirname>listen</dirname> yönergesinin bir özelliğidir. 222 Bu, <literal>server_name</literal> yönergesinin değil, <literal>listen</literal> yönergesinin bir özelliğidir.
223 Ayrıca bakınız &ldquo;<a href="/tr/docs/http/request_processing.xml" />&rdquo;. 223 Ayrıca bakınız &ldquo;<a href="/tr/docs/http/request_processing.xml" />&rdquo;.
224 *:80 ve *:8080 portlarını dinleyen sunucular tanımlayabilir ve birini *:8080 portu için varsayılan olarak belirlerken, diğerini de *:80 için varsayılan olarak belirleyebilirsiniz: 224 *:80 ve *:8080 portlarını dinleyen sunucular tanımlayabilir ve birini *:8080 portu için varsayılan olarak belirlerken, diğerini de *:80 için varsayılan olarak belirleyebilirsiniz:
225 225
226 <programlisting> 226 <programlisting>
227 server { 227 server {
246 246
247 <section id="optimization" 247 <section id="optimization"
248 name="Optimizasyon"> 248 name="Optimizasyon">
249 249
250 <para> 250 <para>
251 Gerçek ve wildcard adlar çırpılarda (hash) depolanır. Çırpılar listen portlarına bağlıdırlar ve her bir listen port 3 farklı çırpıya sahip olabilir: gerçek ad çırpısı, * ile başlayan bir wildcard adı çırpısı ve * ile biten bir wildcard adı çırpısı. Çırpıların boyutu yapılandırma aşamasında optimize edilir ve böylece bir ad en az önbellek kayıpları ile bulundurulur. İlk olarak gerçek ad çırpısı aranır. Gerçek ad çırpısı kullanan bir ad bulunmaz ise, * ile başlayan wildcard ad çırpısı aranır. Bu da bulunmaz ise, * ile biten wildcard ad çırpısı aranır. Adların alanadı parçaları ile aranması nedeniyle wildcard ad çırpıları araması, gerçek ad çırpı aramasına oranla daha yavaştır. Not: Özel <dirname>.nginx.org</dirname> wildcard formu, gerçek ad çırpısında değil, wildcard ad çırpısında saklanır. Düzenli İfadeler sırayla test edildiğinden bu en yavaş ve ölçeklenebilir olmayan yöntemdir. 251 Gerçek ve wildcard adlar çırpılarda (hash) depolanır. Çırpılar listen portlarına bağlıdırlar ve her bir listen port 3 farklı çırpıya sahip olabilir: gerçek ad çırpısı, * ile başlayan bir wildcard adı çırpısı ve * ile biten bir wildcard adı çırpısı. Çırpıların boyutu yapılandırma aşamasında optimize edilir ve böylece bir ad en az önbellek kayıpları ile bulundurulur. İlk olarak gerçek ad çırpısı aranır. Gerçek ad çırpısı kullanan bir ad bulunmaz ise, * ile başlayan wildcard ad çırpısı aranır. Bu da bulunmaz ise, * ile biten wildcard ad çırpısı aranır. Adların alanadı parçaları ile aranması nedeniyle wildcard ad çırpıları araması, gerçek ad çırpı aramasına oranla daha yavaştır. Not: Özel <literal>.nginx.org</literal> wildcard formu, gerçek ad çırpısında değil, wildcard ad çırpısında saklanır. Düzenli İfadeler sırayla test edildiğinden bu en yavaş ve ölçeklenebilir olmayan yöntemdir.
252 </para> 252 </para>
253 253
254 <para> 254 <para>
255 Bu nedenlerden dolayı, imkanlar el veriyorsa gerçek adları kullanmak en iyisidir. Örneğin, bir sunucunun en sık talep edilen adları <url>nginx.org</url> ve <url>www.nginx.org</url> ise bunları açıkca belirtmek daha etkili olacaktır: 255 Bu nedenlerden dolayı, imkanlar el veriyorsa gerçek adları kullanmak en iyisidir. Örneğin, bir sunucunun en sık talep edilen adları <url>nginx.org</url> ve <url>www.nginx.org</url> ise bunları açıkca belirtmek daha etkili olacaktır:
256 256
272 } 272 }
273 </programlisting> 273 </programlisting>
274 </para> 274 </para>
275 275
276 <para> 276 <para>
277 Eğer çok miktarda veya olağandışı şekilde uzun sunucu adları tanımladıysanız, <i>http</i> düzeyinde <dirname>server_names_hash_max_size</dirname> 277 Eğer çok miktarda veya olağandışı şekilde uzun sunucu adları tanımladıysanız, <i>http</i> düzeyinde <literal>server_names_hash_max_size</literal>
278 ve <dirname>server_names_hash_bucket_size</dirname> yönergelerini tekrar ayarlamalısınız. <dirname>server_names_hash_bucket_size</dirname> yönergesinin varsayılan değeri CPU önbellek satır boyutuna göre 32, 64 veya başka bir rakam olabilir. Eğer bu değer 32 ise ve &ldquo;cok.uzun.sunucu.adi.nginx.org&rdquo; ifadesini sunucu adı olarak belirlerseniz nginx, başlamayacak ve aşağıdaki hatayı verecektir: 278 ve <literal>server_names_hash_bucket_size</literal> yönergelerini tekrar ayarlamalısınız. <literal>server_names_hash_bucket_size</literal> yönergesinin varsayılan değeri CPU önbellek satır boyutuna göre 32, 64 veya başka bir rakam olabilir. Eğer bu değer 32 ise ve &ldquo;cok.uzun.sunucu.adi.nginx.org&rdquo; ifadesini sunucu adı olarak belirlerseniz nginx, başlamayacak ve aşağıdaki hatayı verecektir:
279 279
280 <programlisting> 280 <programlisting>
281 could not build the server_names_hash, 281 could not build the server_names_hash,
282 you should increase server_names_hash_bucket_size: 32 282 you should increase server_names_hash_bucket_size: 32
283 </programlisting> 283 </programlisting>
296 could not build the server_names_hash, 296 could not build the server_names_hash,
297 you should increase either server_names_hash_max_size: 512 297 you should increase either server_names_hash_max_size: 512
298 or server_names_hash_bucket_size: 32 298 or server_names_hash_bucket_size: 32
299 </programlisting> 299 </programlisting>
300 300
301 Bu durumda ilk olarak <dirname>server_names_hash_max_size</dirname> değerini sunucu ad sayısına yakın bir değeri yükseltin. Eğer bu da yardımcı sorunu çözmez ise veya nginx başlama süresi çok uzar ise <dirname>server_names_hash_bucket_size</dirname> değerini arttırın. 301 Bu durumda ilk olarak <literal>server_names_hash_max_size</literal> değerini sunucu ad sayısına yakın bir değeri yükseltin. Eğer bu da yardımcı sorunu çözmez ise veya nginx başlama süresi çok uzar ise <literal>server_names_hash_bucket_size</literal> değerini arttırın.
302 </para> 302 </para>
303 303
304 <para> 304 <para>
305 Eğer bir sunucu sadece bir listen port için ise, nginx sunucu adlarını test etmeyecek ve listen port için çırpılar yaratmayacaktır. Fakat bu durumun bir istisnası var; eğer <dirname>server_name</dirname> tutuklar (capture) içeren bir düzenli ifade ise nginx, bu tutukları almak için ifadeyi yürütmek zorundadır. 305 Eğer bir sunucu sadece bir listen port için ise, nginx sunucu adlarını test etmeyecek ve listen port için çırpılar yaratmayacaktır. Fakat bu durumun bir istisnası var; eğer <literal>server_name</literal> tutuklar (capture) içeren bir düzenli ifade ise nginx, bu tutukları almak için ifadeyi yürütmek zorundadır.
306 </para> 306 </para>
307 307
308 </section> 308 </section>
309 309
310 310