comparison xml/ru/docs/http/server_names.xml @ 2767:c56adb7148a4

Described more details about server selection. In particular, this covers how the large_client_header_buffers (ticket #1523) and underscores_in_headers (ticket #1987) directives work in virtual servers.
author Yaroslav Zhuravlev <yar@nginx.com>
date Tue, 13 Jul 2021 13:44:05 +0100
parents 30e2bd353998
children 3b5594157fab
comparison
equal deleted inserted replaced
2766:167329042128 2767:c56adb7148a4
6 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd"> 6 <!DOCTYPE article SYSTEM "../../../../dtd/article.dtd">
7 7
8 <article name="Имена сервера" 8 <article name="Имена сервера"
9 link="/ru/docs/http/server_names.html" 9 link="/ru/docs/http/server_names.html"
10 lang="ru" 10 lang="ru"
11 rev="3" 11 rev="4"
12 author="Игорь Сысоев" 12 author="Игорь Сысоев"
13 editor="Brian Mercer"> 13 editor="Brian Mercer">
14 14
15 15
16 <section> 16 <section>
340 </para> 340 </para>
341 341
342 </section> 342 </section>
343 343
344 344
345 <section id="virtual_server_selection"
346 name="Выбор виртуального сервера">
347
348 <para>
349 Сначала соединение создаётся в контесте сервера по умолчанию.
350 Затем имя сервера может быть определено
351 на следующих стадиях обработки запроса,
352 каждая из которых участвует в выборе конфигурации:
353
354 <list type="bullet">
355
356 <listitem>
357 <para>
358 предварительно во время операции SSL handshake согласно
359 <link doc="configuring_https_servers.xml" id="sni">SNI</link>
360 </para>
361 </listitem>
362
363 <listitem>
364 <para>
365 после обработки строки запроса
366 </para>
367 </listitem>
368
369 <listitem>
370 <para>
371 после обработки поля <literal>Host</literal> заголовка запроса
372 </para>
373 </listitem>
374
375 <listitem>
376 <para>
377 если после обработки строки запроса или
378 поля <literal>Host</literal> заголовка запроса имя сервера не было выбрано,
379 то nginx будет использовать пустое имя в качестве имени сервера.
380 </para>
381 </listitem>
382
383 </list>
384
385 На каждой из этих стадий могут применяться различные конфигурации сервера.
386 Таким образом, некоторые директивы следует указывать с осторожностью:
387 <list type="bullet">
388
389 <listitem>
390 в случае использования
391 директивы <link doc="ngx_http_ssl_module.xml" id="ssl_protocols"/>
392 список протоколов задаётся библиотекой OpenSSL
393 перед применением конфигурации сервера согласно имени,
394 запрашиваемого через SNI.
395 Таким образом, протоколы должны быть заданы только для сервера по умолчанию;
396 </listitem>
397
398 <listitem>
399 директивы
400 <link doc="ngx_http_core_module.xml" id="client_header_buffer_size"/>
401 и
402 <link doc="ngx_http_core_module.xml" id="merge_slashes"/>
403 задействуются перед чтением строки запроса,
404 таким образом они используют конфигурацию сервера по умолчанию или
405 конфигурацию сервера, выбранного через SNI;
406 </listitem>
407
408 <listitem>
409 в случае использования директив
410 <link doc="ngx_http_core_module.xml" id="ignore_invalid_headers"/>,
411 <link doc="ngx_http_core_module.xml" id="large_client_header_buffers"/>
412 и
413 <link doc="ngx_http_core_module.xml" id="underscores_in_headers"/>,
414 которые участвуют в обработке полей заголовка запроса,
415 выбор сервера дополнительно зависит от того,
416 была ли обновлена конфигурация сервера
417 согласно строке запроса или полю заголовка <literal>Host</literal>;
418 </listitem>
419
420 <listitem>
421 ошибочный ответ будет обработан с помощью
422 директивы <link doc="ngx_http_core_module.xml" id="error_page"/>
423 в том сервере, который в настоящий момент выполняет запрос.
424 </listitem>
425
426 </list>
427 </para>
428
429 </section>
430
431
345 <section id="optimization" 432 <section id="optimization"
346 name="Оптимизация"> 433 name="Оптимизация">
347 434
348 <para> 435 <para>
349 Точные имена, имена с масками, начинающиеся со звёздочки, 436 Точные имена, имена с масками, начинающиеся со звёздочки,