Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_upstream_module.xml @ 1234:314801ed88e7
Upstream: translated the "sticky" directive.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Wed, 18 Jun 2014 19:19:55 +0400 |
parents | 6cc809881694 |
children | e0a1a929a458 |
comparison
equal
deleted
inserted
replaced
1233:726e8f47763c | 1234:314801ed88e7 |
---|---|
496 </note> | 496 </note> |
497 </para> | 497 </para> |
498 | 498 |
499 </directive> | 499 </directive> |
500 | 500 |
501 | |
502 <directive name="sticky"> | |
503 <syntax><literal>cookie</literal> <value>имя</value> | |
504 [<literal>expires=</literal><value>время</value>] | |
505 [<literal>domain=</literal><value>домен</value>] | |
506 [<literal>path=</literal><value>путь</value>]</syntax> | |
507 <syntax><literal>route</literal> <value>переменная</value> ...</syntax> | |
508 <default/> | |
509 <context>upstream</context> | |
510 <appeared-in>1.5.7</appeared-in> | |
511 | |
512 <para> | |
513 Включает режим привязки сеансов, в котором запросы клиента | |
514 будут передаваться на один и тот же сервер группы. | |
515 Доступны два метода: | |
516 <literal>cookie</literal> и <literal>route</literal>. | |
517 </para> | |
518 | |
519 <para> | |
520 При использовании метода <literal>cookie</literal> информация о | |
521 назначенном сервере передаётся в HTTP-куке: | |
522 <example> | |
523 upstream backend { | |
524 server backend1.example.com; | |
525 server backend2.example.com; | |
526 | |
527 sticky cookie srv_id expires=1h domain=.example.com path=/; | |
528 } | |
529 </example> | |
530 </para> | |
531 | |
532 <para> | |
533 Запрос от клиента, ещё не привязанного к определённому серверу, | |
534 передаётся на сервер, выбранный согласно настроенному методу балансировки. | |
535 Дальнейшие запросы от этого клиента передаются на тот же сервер. | |
536 Если назначенный сервер не может обработать запрос, выбирается новый | |
537 сервер как если бы клиент не имел привязки к серверу. | |
538 </para> | |
539 | |
540 <para> | |
541 Первый параметр задаёт имя куки, которую необходимо установить или проверить. | |
542 Дополнительные параметры могут быть следующими: | |
543 <list type="tag"> | |
544 | |
545 <tag-name><literal>expires</literal></tag-name> | |
546 <tag-desc> | |
547 Задаёт время, в течение которого браузеру необходимо хранить куку. | |
548 Специальное значение <literal>max</literal> устанавливает срок хранения куки до | |
549 31 декабря 2037 года 23:55:55 GMT. | |
550 Если параметр не указан, то время действия куки ограничивается сессией браузера. | |
551 </tag-desc> | |
552 | |
553 <tag-name><literal>domain</literal></tag-name> | |
554 <tag-desc> | |
555 Задаёт домен, для которого устанавливается кука. | |
556 </tag-desc> | |
557 | |
558 <tag-name><literal>path</literal></tag-name> | |
559 <tag-desc> | |
560 Задаёт путь, для которого устанавливается кука. | |
561 </tag-desc> | |
562 | |
563 </list> | |
564 Если пропущен тот или иной параметр, то соответствующего поля в куке не будет. | |
565 </para> | |
566 | |
567 <para> | |
568 При использовании метода <literal>route</literal> проксируемый сервер назначает | |
569 клиенту маршрут по получении первого запроса. | |
570 Все последующие запросы от этого клиента будут содержать информацию о | |
571 маршруте в куке или URI. | |
572 Эта информация сравнивается с параметром “<literal>route</literal>” директивы | |
573 <link id="server"/> для идентификации сервера, на который | |
574 следует проксировать запрос. | |
575 Если назначенный сервер не может обработать запрос, выбирается новый сервер | |
576 согласно настроенному методу балансировки как если бы в запросе не было | |
577 информации о маршруте. | |
578 </para> | |
579 | |
580 <para> | |
581 Параметры метода <literal>route</literal> задают переменные, которые | |
582 могут содержать информацию о маршрутизации. | |
583 Первая непустая переменная используется для поиска соответствующего сервера. | |
584 </para> | |
585 | |
586 <para> | |
587 Пример: | |
588 <example> | |
589 map $cookie_jsessionid $route_cookie { | |
590 ~.+\.(?P<route>\w+)$ $route; | |
591 } | |
592 | |
593 map $request_uri $route_uri { | |
594 ~jsessionid=.+\.(?P<route>\w+)$ $route; | |
595 } | |
596 | |
597 upstream backend { | |
598 server backend1.example.com route=a; | |
599 server backend2.example.com route=b; | |
600 | |
601 sticky route $route_cookie $route_uri; | |
602 } | |
603 </example> | |
604 В этом примере маршрут берётся из куки “<literal>JSESSIONID</literal>”, | |
605 если она присутствует в запросе. | |
606 В противном случае используется маршрут из URI. | |
607 </para> | |
608 | |
609 <para> | |
610 <note> | |
611 Эта директива доступна как часть | |
612 <commercial_version>коммерческой подписки</commercial_version>. | |
613 </note> | |
614 </para> | |
615 | |
616 </directive> | |
617 | |
501 </section> | 618 </section> |
502 | 619 |
503 | 620 |
504 <section id="variables" name="Встроенные переменные"> | 621 <section id="variables" name="Встроенные переменные"> |
505 | 622 |