Mercurial > hg > nginx-site
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 “<link doc="request_processing.xml" />”. 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 “<link doc="request_processing.xml" />”. 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 ~^(?<user>.+)\.nginx\.net$; | 35 server_name ~^(?<user>.+)\.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 “^” ve “$” çapalarını kullanmayı unutmayın. | 93 “^” ve “$” ç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 “{” ve “}” kullanan bir düzenli ifade tırnak arasına alınmalıdır: | 96 “{” ve “}” kullanan bir düzenli ifade tırnak arasına alınmalıdır: |
97 | 97 |
98 <programlisting> | 98 <programlisting> |
99 server_name "~^(?<name>\w\d<b>{</b>1,3<b>}</b>+)\.nginx\.net$"; | 99 server_name "~^(?<name>\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 “Host” 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 “Host” 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 “Host” 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 “Host” 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 “cok.uzun.sunucu.adi.nginx.org” 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 “cok.uzun.sunucu.adi.example.org” 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 |