# 🎜🎜 # Exemple de configuration # 🎜🎜 ## 🎜🎜 #
upstream backend { server backend1.example.com weight=5; server backend2.example.com:8080; server unix:/tmp/backend3; server backup1.example.com:8080 backup; server backup2.example.com:8080 backup; } server { location / { proxy_pass http://backend; } }
#🎜🎜 # | Context:http |
Définir un ensemble de serveurs. Ces serveurs peuvent écouter sur différents ports. De plus, les serveurs écoutant sur les sockets de domaine TCP et UNIX peuvent être mixtes. | Exemple : |
#🎜 🎜#
Valeur par défaut : —Contexte : | amont # 🎜🎜# |
Vous pouvez définir les paramètres suivants : weight=number définit le poids du serveur, la valeur par défaut est 1. max_fails=number définit le nombre de tentatives infructueuses de nginx pour communiquer avec le serveur. Dans le délai défini par le paramètre fail_timeout, si le nombre d'échecs atteint cette valeur, nginx considérera le serveur comme indisponible. Au cours de la prochaine période fail_timeout, le serveur ne sera pas réessayé. Le nombre de tentatives infructueuses est par défaut de 1. Le définir sur 0 arrêtera de compter les tentatives et considérera que le serveur est toujours disponible. Vous pouvez configurer ce qui est considéré comme une tentative échouée via les directives proxy_next_upstream, fastcgi_next_upstream et memcached_next_upstream. Lorsqu'il est configuré par défaut, l'état http_404 n'est pas considéré comme une tentative ayant échoué. fail_timeout=time settings | |
La période de temps pendant laquelle le serveur est considéré comme indisponible. |
Par défaut, ce délai d'attente est de 10 secondes. la sauvegarde est marquée comme serveur de sauvegarde. Lorsque le serveur principal est indisponible, les requêtes seront transmises à ces serveurs. down marque le serveur comme indisponible en permanence et peut être utilisé avec la directive ip_hash.
exemple :
upstream backend { server backend1.example.com weight=5; server 127.0.0.1:8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; server backup1.example.com:8080 backup; }
#🎜 🎜 #
Prend en charge les adresses ipv6 à partir des versions 1.3.2 et 1.2.2. | Si l'un des serveurs souhaite être temporairement supprimé, le paramètre down doit être ajouté. Cela préserve la distribution actuelle du hachage de l’adresse IP du client. |
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com down; server backend4.example.com; } Copier après la connexion | À partir des versions 1.3.1 et 1.2.2, la méthode d'équilibrage de charge d'ip_hash prend uniquement en charge la définition de la valeur de poids du serveur. |
keepalive connexions;
# 🎜🎜#
Valeur par défaut : —Contexte :
这个指令出现在版本 1.1.4. 激活对上游服务器的连接进行缓存。 connections参数设置每个worker进程与后端服务器保持连接的最大数量。这些保持的连接会被放入缓存。 如果连接数大于这个值时,最久未使用的连接会被关闭。 需要注意的是,keepalive指令不会限制nginx进程与上游服务器的连接总数。 新的连接总会按需被创建。 connections参数应该稍微设低一点,以便上游服务器也能处理额外新进来的连接。 配置memcached上游服务器连接keepalive的例子: upstream memcached_backend { server 127.0.0.1:11211; server 10.0.0.2:11211; keepalive 32; } server { ... location /memcached/ { set $memcached_key $uri; memcached_pass memcached_backend; } } Copier après la connexion 对于http代理,proxy_http_version指令应该设置为“1.1”,同时“connection”头的值也应被清空。 upstream http_backend { server 127.0.0.1:8080; keepalive 16; } server { ... location /http/ { proxy_pass http://http_backend; proxy_http_version 1.1; proxy_set_header connection ""; ... } } Copier après la connexion 另外一种选择是,http/1.0协议的持久连接也可以通过发送“connection: keep-alive”头来实现。不过不建议这样用。 对于fastcgi的服务器,需要设置 fastcgi_keep_conn 指令来让连接keepalive工作: upstream fastcgi_backend { server 127.0.0.1:9000; keepalive 8; } server { ... location /fastcgi/ { fastcgi_pass fastcgi_backend; fastcgi_keep_conn on; ... } } Copier après la connexion 当使用的负载均衡方法不是默认的轮转法时,必须在keepalive 指令之前配置。 针对scgi和uwsgi协议,还没有实现其keepalive连接的打算。
这个指令出现在版本 1.3.1 和 1.2.2. 指定服务器组的负载均衡方法,根据其权重值,将请求发送到活跃连接数最少的那台服务器。 如果这样的服务器有多台,那就采取有权重的轮转法进行尝试。 嵌入的变量 ngx_http_upstream_module模块支持以下嵌入变量: $upstream_addr保存服务器的ip地址和端口或者是unix域套接字的路径。 在请求处理过程中,如果有多台服务器被尝试了,它们的地址会被拼接起来,以逗号隔开,比如: “192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock”。 如果在服务器之间通过“x-accel-redirect”头或者error_page有内部跳转,那么这些服务器组之间会以冒号隔开,比如:“192.168.1.1:80, 192.168.1.2:80, unix:/tmp/sock : 192.168.10.1:80, 192.168.10.2:80”。$upstream_response_time以毫秒的精度保留服务器的响应时间,(输出)单位是秒。 出现多个响应时,也是以逗号和冒号隔开。$upstream_status保存服务器的响应代码。 出现多个响应时,也是以逗号和冒号隔开。$upstream_http_...保存服务器的响应头的值。比如“server”响应头的值可以通过$upstream_http_server变量来获取。 需要注意的是只有最后一个响应的头会被保留下来。 Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!
Article précédent:Comment configurer l'hôte virtuel Nginx sur CentOS
Article suivant:Comment utiliser le proxy inverse Nginx pour résoudre les problèmes inter-domaines
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Rubriques connexes
Plus>
|