Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_upstream_module.xml @ 1945:88477c5d2751
Moved "health_check" and "match" to ngx_http_upstream_hc_module.
author | Yaroslav Zhuravlev <yar@nginx.com> |
---|---|
date | Thu, 30 Mar 2017 21:26:44 +0300 |
parents | a58b35cc0823 |
children | 5c55b7054b58 |
comparison
equal
deleted
inserted
replaced
1944:dbf6f05f0808 | 1945:88477c5d2751 |
---|---|
8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> | 8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> |
9 | 9 |
10 <module name="Модуль ngx_http_upstream_module" | 10 <module name="Модуль ngx_http_upstream_module" |
11 link="/ru/docs/http/ngx_http_upstream_module.html" | 11 link="/ru/docs/http/ngx_http_upstream_module.html" |
12 lang="ru" | 12 lang="ru" |
13 rev="59"> | 13 rev="60"> |
14 | 14 |
15 <section id="summary"> | 15 <section id="summary"> |
16 | 16 |
17 <para> | 17 <para> |
18 Модуль <literal>ngx_http_upstream_module</literal> | 18 Модуль <literal>ngx_http_upstream_module</literal> |
48 } | 48 } |
49 </example> | 49 </example> |
50 </para> | 50 </para> |
51 | 51 |
52 <para> | 52 <para> |
53 Динамически настраиваемая группа, | 53 Динамически настраиваемая группа |
54 с периодическими | |
55 <link doc="ngx_http_upstream_hc_module.xml">проверками работоспособности</link> | |
54 доступна как часть | 56 доступна как часть |
55 <commercial_version>коммерческой подписки</commercial_version>: | 57 <commercial_version>коммерческой подписки</commercial_version>: |
56 <example> | 58 <example> |
57 resolver 10.0.0.1; | 59 resolver 10.0.0.1; |
58 | 60 |
322 </tag-name> | 324 </tag-name> |
323 <tag-desc> | 325 <tag-desc> |
324 задаёт <value>время</value>, в течение которого вес сервера | 326 задаёт <value>время</value>, в течение которого вес сервера |
325 восстановится от нуля до своего номинального значения в ситуации, когда | 327 восстановится от нуля до своего номинального значения в ситуации, когда |
326 неработоспособный (unhealthy) сервер вновь становится работоспособным | 328 неработоспособный (unhealthy) сервер вновь становится работоспособным |
327 (<link id="health_check">healthy</link>) | 329 (<link doc="ngx_http_upstream_hc_module.xml" id="health_check">healthy</link>) |
328 или когда сервер становится доступным по прошествии времени, | 330 или когда сервер становится доступным по прошествии времени, |
329 в течение которого он считался <link id="fail_timeout">недоступным</link>. | 331 в течение которого он считался <link id="fail_timeout">недоступным</link>. |
330 Значение по умолчанию равно нулю и означает, что медленный старт выключен. | 332 Значение по умолчанию равно нулю и означает, что медленный старт выключен. |
331 <note> | 333 <note> |
332 Параметр нельзя использовать совместно с | 334 Параметр нельзя использовать совместно с |
734 Если указан параметр <literal>inflight</literal> (1.11.6), | 736 Если указан параметр <literal>inflight</literal> (1.11.6), |
735 то также учитываются незавершённые запросы. | 737 то также учитываются незавершённые запросы. |
736 <note> | 738 <note> |
737 До версии 1.11.6 незавершённые запросы учитывались по умолчанию. | 739 До версии 1.11.6 незавершённые запросы учитывались по умолчанию. |
738 </note> | 740 </note> |
739 </para> | |
740 | |
741 <para> | |
742 <note> | |
743 Эта директива доступна как часть | |
744 <commercial_version>коммерческой подписки</commercial_version>. | |
745 </note> | |
746 </para> | |
747 | |
748 </directive> | |
749 | |
750 | |
751 <directive name="health_check"> | |
752 <syntax>[<value>параметры</value>]</syntax> | |
753 <default/> | |
754 <context>location</context> | |
755 | |
756 <para> | |
757 Активирует периодические проверки работоспособности серверов в | |
758 <link id="upstream">группе</link>, указанной в содержащем location. | |
759 </para> | |
760 | |
761 <para> | |
762 Могут быть заданы следующие необязательные параметры: | |
763 <list type="tag"> | |
764 | |
765 <tag-name id="interval"> | |
766 <literal>interval</literal>=<value>время</value> | |
767 </tag-name> | |
768 <tag-desc> | |
769 задаёт интервал между двумя последовательными проверками, | |
770 по умолчанию 5 секунд. | |
771 </tag-desc> | |
772 | |
773 <tag-name id="health_check_jitter"> | |
774 <literal>jitter</literal>=<value>время</value> | |
775 </tag-name> | |
776 <tag-desc> | |
777 задаёт время, в пределах которого | |
778 случайным образом задерживается каждая проверка, | |
779 по умолчанию задержки нет. | |
780 </tag-desc> | |
781 | |
782 <tag-name id="fails"> | |
783 <literal>fails</literal>=<value>число</value> | |
784 </tag-name> | |
785 <tag-desc> | |
786 задаёт число последовательных неуспешных проверок для определённого сервера, | |
787 после которых сервер будет считаться неработоспособным, | |
788 по умолчанию 1. | |
789 </tag-desc> | |
790 | |
791 <tag-name id="passes"> | |
792 <literal>passes</literal>=<value>число</value> | |
793 </tag-name> | |
794 <tag-desc> | |
795 задаёт число последовательных успешных проверок для определённого сервера, | |
796 после которых сервер будет считаться работоспособным, | |
797 по умолчанию 1. | |
798 </tag-desc> | |
799 | |
800 <tag-name id="uri"> | |
801 <literal>uri</literal>=<value>uri</value> | |
802 </tag-name> | |
803 <tag-desc> | |
804 задаёт URI, используемый в запросах, проверяющих работоспособность, | |
805 по умолчанию “<literal>/</literal>”. | |
806 </tag-desc> | |
807 | |
808 <tag-name id="health_check_mandatory"> | |
809 <literal>mandatory</literal> | |
810 </tag-name> | |
811 <tag-desc> | |
812 устанавливает исходное состояние “checking” для сервера | |
813 до завершения первой проверки работоспособности (1.11.7). | |
814 Если параметр не указан, | |
815 то исходно сервер будет считаться работоспособным. | |
816 </tag-desc> | |
817 | |
818 <tag-name id="hc_match"> | |
819 <literal>match</literal>=<value>имя</value> | |
820 </tag-name> | |
821 <tag-desc> | |
822 указывает на блок <literal>match</literal> с условиями, которым должен | |
823 удовлетворять ответ, чтобы результат проверки считался успешным. | |
824 По умолчанию код ответа должен быть 2xx или 3xx. | |
825 </tag-desc> | |
826 | |
827 <tag-name id="health_check_port"> | |
828 <literal>port</literal>=<value>число</value> | |
829 </tag-name> | |
830 <tag-desc> | |
831 задаёт порт, используемый при подключении к серверу | |
832 для проверки его работоспособности (1.9.7). | |
833 По умолчанию совпадает с портом <link id="server">сервера</link>. | |
834 </tag-desc> | |
835 | |
836 </list> | |
837 </para> | |
838 | |
839 <para> | |
840 В примере | |
841 <example> | |
842 location / { | |
843 proxy_pass http://backend; | |
844 health_check; | |
845 } | |
846 </example> | |
847 каждому серверу группы <literal>backend</literal> | |
848 с интервалом в 5 секунд посылаются запросы “<literal>/</literal>”. | |
849 Если происходит ошибка или таймаут при работе с сервером, или | |
850 код ответа проксируемого сервера не равен | |
851 2xx или 3xx, проверка считается неуспешной и сервер | |
852 признаётся неработоспособным. | |
853 На неработоспособные серверы и серверы в состоянии “checking” | |
854 клиентские запросы передаваться не будут. | |
855 </para> | |
856 | |
857 <para> | |
858 Проверки работоспособности могут тестировать код ответа, | |
859 наличие или отсутствие определённых полей заголовка и их значений, | |
860 а также содержимое тела ответа. | |
861 Тесты настраиваются отдельно при помощи директивы <link id="match"/> | |
862 и указываются в параметре <literal>match</literal>. | |
863 Например: | |
864 <example> | |
865 http { | |
866 server { | |
867 ... | |
868 location / { | |
869 proxy_pass http://backend; | |
870 health_check match=welcome; | |
871 } | |
872 } | |
873 | |
874 match welcome { | |
875 status 200; | |
876 header Content-Type = text/html; | |
877 body ~ "Welcome to nginx!"; | |
878 } | |
879 } | |
880 </example> | |
881 В такой конфигурации успешный ответ на проверочный запрос | |
882 должен иметь код 200, тип содержимого “<literal>text/html</literal>” | |
883 и “<literal>Welcome to nginx!</literal>” в теле ответа. | |
884 </para> | |
885 | |
886 <para> | |
887 Группа должна находиться в <link id="zone">зоне разделяемой памяти</link>. | |
888 </para> | |
889 | |
890 <para> | |
891 Если для группы задано несколько проверок, | |
892 то при любой неуспешной проверке соответствующий сервер будет | |
893 считаться неработоспособным. | |
894 </para> | |
895 | |
896 <para> | |
897 <note> | |
898 Обратите внимание, что при использовании проверок | |
899 большинство переменных имеют пустые значения. | |
900 </note> | |
901 </para> | |
902 | |
903 <para> | |
904 <note> | |
905 Эта директива доступна как часть | |
906 <commercial_version>коммерческой подписки</commercial_version>. | |
907 </note> | |
908 </para> | |
909 | |
910 </directive> | |
911 | |
912 | |
913 <directive name="match"> | |
914 <syntax block="yes"><value>имя</value></syntax> | |
915 <default/> | |
916 <context>http</context> | |
917 | |
918 <para> | |
919 Задаёт именованный набор тестов для анализа ответов | |
920 на запросы проверки работоспособности. | |
921 </para> | |
922 | |
923 <para> | |
924 В ответе могут быть протестированы следующие объекты: | |
925 <list type="tag"> | |
926 | |
927 <tag-name><literal>status 200;</literal></tag-name> | |
928 <tag-desc>код ответа равен 200</tag-desc> | |
929 | |
930 <tag-name><literal>status ! 500;</literal></tag-name> | |
931 <tag-desc>код ответа не равен 500</tag-desc> | |
932 | |
933 <tag-name><literal>status 200 204;</literal></tag-name> | |
934 <tag-desc>код ответа равен 200 или 204</tag-desc> | |
935 | |
936 <tag-name><literal>status ! 301 302;</literal></tag-name> | |
937 <tag-desc>код ответа не равен ни 301, ни 302</tag-desc> | |
938 | |
939 <tag-name><literal>status 200-399;</literal></tag-name> | |
940 <tag-desc>код ответа находится в диапазоне от 200 до 399</tag-desc> | |
941 | |
942 <tag-name><literal>status ! 400-599;</literal></tag-name> | |
943 <tag-desc>код ответа находится вне диапазона от 400 до 599</tag-desc> | |
944 | |
945 <tag-name><literal>status 301-303 307;</literal></tag-name> | |
946 <tag-desc>код ответа равен 301, 302, 303 или 307</tag-desc> | |
947 | |
948 </list> | |
949 | |
950 <list type="tag"> | |
951 | |
952 <tag-name><literal>header Content-Type = text/html;</literal></tag-name> | |
953 <tag-desc> | |
954 заголовок содержит <header>Content-Type</header> | |
955 со значением <literal>text/html</literal> | |
956 </tag-desc> | |
957 | |
958 <tag-name><literal>header Content-Type != text/html;</literal></tag-name> | |
959 <tag-desc> | |
960 заголовок содержит <header>Content-Type</header> | |
961 со значением, отличным от <literal>text/html</literal> | |
962 </tag-desc> | |
963 | |
964 <tag-name><literal>header Connection ~ close;</literal></tag-name> | |
965 <tag-desc> | |
966 заголовок содержит <header>Connection</header> | |
967 со значением, совпадающим с регулярным выражением <literal>close</literal> | |
968 </tag-desc> | |
969 | |
970 <tag-name><literal>header Connection !~ close;</literal></tag-name> | |
971 <tag-desc> | |
972 заголовок содержит <header>Connection</header> | |
973 со значением, не совпадающим с регулярным выражением <literal>close</literal> | |
974 </tag-desc> | |
975 | |
976 <tag-name><literal>header Host;</literal></tag-name> | |
977 <tag-desc>заголовок содержит <header>Host</header></tag-desc> | |
978 | |
979 <tag-name><literal>header ! X-Accel-Redirect;</literal></tag-name> | |
980 <tag-desc>заголовок не содержит <header>X-Accel-Redirect</header></tag-desc> | |
981 | |
982 </list> | |
983 | |
984 <list type="tag"> | |
985 | |
986 <tag-name><literal>body ~ "Welcome to nginx!";</literal></tag-name> | |
987 <tag-desc> | |
988 тело ответа совпадает с регулярным выражением | |
989 “<literal>Welcome to nginx!</literal>” | |
990 </tag-desc> | |
991 | |
992 <tag-name><literal>body !~ "Welcome to nginx!";</literal></tag-name> | |
993 <tag-desc> | |
994 тело ответа не совпадает с регулярным выражением | |
995 “<literal>Welcome to nginx!</literal>” | |
996 </tag-desc> | |
997 | |
998 </list> | |
999 </para> | |
1000 | |
1001 <para> | |
1002 Если задано несколько тестов, | |
1003 то ответ должен удовлетворять всем тестам. | |
1004 <note> | |
1005 Проверяются только первые 256 Кбайт тела ответа. | |
1006 </note> | |
1007 </para> | |
1008 | |
1009 <para> | |
1010 Примеры: | |
1011 <example> | |
1012 # код ответа 200, тип содержимого "text/html" | |
1013 # и тело ответа содержит "Welcome to nginx!" | |
1014 match welcome { | |
1015 status 200; | |
1016 header Content-Type = text/html; | |
1017 body ~ "Welcome to nginx!"; | |
1018 } | |
1019 </example> | |
1020 | |
1021 <example> | |
1022 # код ответа не равен 301, 302, 303 и 307 и заголовок не содержит "Refresh:" | |
1023 match not_redirect { | |
1024 status ! 301-303 307; | |
1025 header ! Refresh; | |
1026 } | |
1027 </example> | |
1028 | |
1029 <example> | |
1030 # код ответа успешный и сервер не в сервисном режиме | |
1031 match server_ok { | |
1032 status 200-399; | |
1033 body !~ "maintenance mode"; | |
1034 } | |
1035 </example> | |
1036 | |
1037 </para> | 741 </para> |
1038 | 742 |
1039 <para> | 743 <para> |
1040 <note> | 744 <note> |
1041 Эта директива доступна как часть | 745 Эта директива доступна как часть |