192.168.0.107 -> 127.0.0.1:8080 || 127.0.0.1:8081
轮询(默认),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream myserver { server 127.0.0.1:8080; server 127.0.0.1:8081; } server { listen 80; server_name 192.168.0.107; location / { proxy_pass http://myserver; } } }
weight 权重,重默认为 1,权重越高被分配的客户端越多
upstream myserver { server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=2; }
ip_hash,每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。
upstream myserver { ip_hash; server 127.0.0.1:8080; server 127.0.0.1:8081; }
fair(第三方),按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream myserver { server 127.0.0.1:8080; server 127.0.0.1:8081; fair; }
url_hash(第三方),按访问 url 的 hash 结果来分配请求,使每一个 url 定向到同一个后端服务器。后端服务器为缓存时比较有效。注意:在 upstream 中加入 hash 语句。server 语句中不能写入 weight 等其他的參数,hash_method 是使用的 hash 算法。
upstream myserver { server 127.0.0.1:8080; server 127.0.0.1:8081; hash $request_uri; hash_method crc32; }