comparison xml/tr/docs/http/server_names.xml @ 490:9913f1d51c07

Replaced "nginx" domain names with example domains.
author Ruslan Ermilov <ru@nginx.com>
date Thu, 19 Apr 2012 12:30:24 +0000
parents 6135f3c95bf6
children 130fad6dc1b4
comparison
equal deleted inserted replaced
489:2abd1998a0cc 490:9913f1d51c07
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;<link doc="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;<link doc="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 example.org www.example.org;
18 ... 18 ...
19 } 19 }
20 20
21 server { 21 server {
22 listen 80; 22 listen 80;
23 server_name *.nginx.org; 23 server_name *.example.org;
24 ... 24 ...
25 } 25 }
26 26
27 server { 27 server {
28 listen 80; 28 listen 80;
30 ... 30 ...
31 } 31 }
32 32
33 server { 33 server {
34 listen 80; 34 listen 80;
35 server_name ~^(?&lt;user&gt;.+)\.nginx\.net$; 35 server_name ~^(?&lt;user&gt;.+)\.example\.net$;
36 ... 36 ...
37 } 37 }
38 </programlisting> 38 </programlisting>
39 39
40 Bu adlar şu sıra ile test edilirler: 40 Bu adlar şu sıra ile test edilirler:
44 <listitem> 44 <listitem>
45 gerçek adlar; 45 gerçek adlar;
46 </listitem> 46 </listitem>
47 47
48 <listitem> 48 <listitem>
49 * ile başlayan wildcard adlar: <url>*.nginx.org</url>; 49 * ile başlayan wildcard adlar: <url>*.example.org</url>;
50 </listitem> 50 </listitem>
51 51
52 <listitem> 52 <listitem>
53 * ile biten wildcard adlar: <url>mail.*</url>; 53 * ile biten wildcard adlar: <url>mail.*</url>;
54 </listitem> 54 </listitem>
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. <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. 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.*.example.org</literal> ve <literal>w*.example.org</literal> adları geçersizdir. Ancak bu adlar düzenli ifadeler ile geçerli hale getirilebilir, örneğin, <literal>~^www\..+\.example\.org$</literal> ve <literal>~^w.*\.example\.org$</literal>. Buradaki * bir çok eşleşmeyi tanımlayabilir. <literal>*.example.org</literal> ifadesi <url>www.example.org</url> ve <url>www.sub.example.org</url> adlarına karşılık gelebilir.
72 </para> 72 </para>
73 73
74 <para> 74 <para>
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. 75 <literal>.example.org</literal> şeklindeki bir wildcard <literal>example.org</literal> gerçek adı ile <literal>*.example.org</literal> wildcard adına karşılık gelir.
76 </para> 76 </para>
77 77
78 </section> 78 </section>
79 79
80 80
84 <para> 84 <para>
85 nginx tarafından kullanılan düzenli ifadeler, Perl programlama dili (PCRE) tarafından kullanılanlar ile tam uyumludur. 85 nginx tarafından kullanılan düzenli ifadeler, Perl programlama dili (PCRE) tarafından kullanılanlar ile tam uyumludur.
86 Bir düzenli ifade kullanmak için sunucu adı tilda (~) ile başlamalıdır: 86 Bir düzenli ifade kullanmak için sunucu adı tilda (~) ile başlamalıdır:
87 87
88 <programlisting> 88 <programlisting>
89 server_name ~^www\d+\.nginx\.net$; 89 server_name ~^www\d+\.example\.net$;
90 </programlisting> 90 </programlisting>
91 91
92 diğer türlü ifade gerçek ad veya düzenli ifade * içeriyorsa wildcard ad gibi algılanacaktır (ve yüksek ihtimal geçersiz bir ad olarak). 92 diğer türlü ifade gerçek ad veya düzenli ifade * içeriyorsa wildcard ad gibi algılanacaktır (ve yüksek ihtimal geçersiz bir ad olarak).
93 &ldquo;^&rdquo; ve &ldquo;$&rdquo; çapalarını kullanmayı unutmayın. 93 &ldquo;^&rdquo; ve &ldquo;$&rdquo; çapalarını kullanmayı unutmayın.
94 Sentaks açısından gerekli olmasalar da mantık açısından gereklidir. 94 Sentaks açısından gerekli olmasalar da mantık açısından gereklidir.
95 Ayrıca alan adında bulunan noktalarda da \ önceli ile kullanılmalıdır. 95 Ayrıca alan adında bulunan noktalarda da \ önceli ile kullanılmalıdır.
96 &ldquo;{&rdquo; ve &ldquo;}&rdquo; kullanan bir düzenli ifade tırnak arasına alınmalıdır: 96 &ldquo;{&rdquo; ve &ldquo;}&rdquo; kullanan bir düzenli ifade tırnak arasına alınmalıdır:
97 97
98 <programlisting> 98 <programlisting>
99 server_name "~^(?&lt;name&gt;\w\d<b>{</b>1,3<b>}</b>+)\.nginx\.net$"; 99 server_name "~^(?&lt;name&gt;\w\d<b>{</b>1,3<b>}</b>+)\.example\.net$";
100 </programlisting> 100 </programlisting>
101 101
102 diğer türlü, nginx şu şekilde bir hata verecektir: 102 diğer türlü, nginx şu şekilde bir hata verecektir:
103 103
104 <programlisting> 104 <programlisting>
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
177 <programlisting> 177 <programlisting>
178 server { 178 server {
179 listen 80; 179 listen 80;
180 server_name nginx.org www.nginx.org ""; 180 server_name example.org www.example.org "";
181 ... 181 ...
182 } 182 }
183 </programlisting> 183 </programlisting>
184 </para> 184 </para>
185 185
187 Eğer bir istemci ad yerine IP adresini kullanarak bir talepte bulunursa, header içerisinde bulunan &ldquo;Host&rdquo; datası IP bilgisini içerecektir ve bu IP adresini, sunucu adı olarak kullanarak talebi işleyebilirsiniz: 187 Eğer bir istemci ad yerine IP adresini kullanarak bir talepte bulunursa, header içerisinde bulunan &ldquo;Host&rdquo; datası IP bilgisini içerecektir ve bu IP adresini, sunucu adı olarak kullanarak talebi işleyebilirsiniz:
188 188
189 <programlisting> 189 <programlisting>
190 server { 190 server {
191 listen 80; 191 listen 80;
192 server_name nginx.org 192 server_name example.org
193 www.nginx.org 193 www.example.org
194 "" 194 ""
195 <b>192.168.1.1</b> 195 <b>192.168.1.1</b>
196 ; 196 ;
197 ... 197 ...
198 } 198 }
225 225
226 <programlisting> 226 <programlisting>
227 server { 227 server {
228 listen 80; 228 listen 80;
229 listen 8080 default_server; 229 listen 8080 default_server;
230 server_name nginx.net; 230 server_name example.net;
231 ... 231 ...
232 } 232 }
233 233
234 server { 234 server {
235 listen 80 default_server; 235 listen 80 default_server;
236 listen 8080; 236 listen 8080;
237 server_name nginx.org; 237 server_name example.org;
238 ... 238 ...
239 } 239 }
240 </programlisting> 240 </programlisting>
241 </para> 241 </para>
242 242
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 <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. 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>.example.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>example.org</url> ve <url>www.example.org</url> ise bunları açıkca belirtmek daha etkili olacaktır:
256 256
257 <programlisting> 257 <programlisting>
258 server { 258 server {
259 listen 80; 259 listen 80;
260 server_name nginx.org www.nginx.org *.nginx.org; 260 server_name example.org www.example.org *.example.org;
261 ... 261 ...
262 } 262 }
263 </programlisting> 263 </programlisting>
264 264
265 bu kullanım aşağıdaki basit kullanımdan daha etkili olacaktır: 265 bu kullanım aşağıdaki basit kullanımdan daha etkili olacaktır:
266 266
267 <programlisting> 267 <programlisting>
268 server { 268 server {
269 listen 80; 269 listen 80;
270 server_name .nginx.org; 270 server_name .example.org;
271 ... 271 ...
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 <literal>server_names_hash_max_size</literal> 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 <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: 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.example.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>
333 <listitem> 333 <listitem>
334 Düzenli ifade sunucu adları 0.6.7 versiyonundan beri destekleniyor. 334 Düzenli ifade sunucu adları 0.6.7 versiyonundan beri destekleniyor.
335 </listitem> 335 </listitem>
336 336
337 <listitem> 337 <listitem>
338 <url>nginx.*</url> wildcard formu 0.6.0 versiyonundan beri destekleniyor. 338 <url>example.*</url> wildcard formu 0.6.0 versiyonundan beri destekleniyor.
339 </listitem> 339 </listitem>
340 340
341 <listitem> 341 <listitem>
342 <url>.nginx.org</url> özel formu 0.3.18 versiyonundan beri destekleniyor. 342 <url>.example.org</url> özel formu 0.3.18 versiyonundan beri destekleniyor.
343 </listitem> 343 </listitem>
344 344
345 <listitem> 345 <listitem>
346 <url>*.nginx.org</url> wildcard formu 0.1.13 versiyonundan beri destekleniyor. 346 <url>*.example.org</url> wildcard formu 0.1.13 versiyonundan beri destekleniyor.
347 </listitem> 347 </listitem>
348 348
349 </list> 349 </list>
350 </para> 350 </para>
351 351