宽屏模式

thinkphp6 项目实现 nginx 负载均衡

nginx 配置


# 需要使用负载的域名的配置中添加 `upstream` 配置
# ip_hash 每个请求按照ip 的 hash 结果分配, 这样同一ip的请求会分配到同一个后端服务器, 可解决 session 问题.
upstream api {
    ip_hash;
    server 192.168.43.129;
    server 192.168.43.135;
}

# 

同时 server 节点下的 location 节点中的 proxy_pass 配置为 http:// + upstream 名称,即 http://api.

location / {
	proxy_pass http://api;
	proxy_set_header Host $host;
}

其它负载分配策略

轮询模式


# 默认是轮询模式, 按时间顺序逐一分配到不同的后端服务器
# 如果后端服务器down掉,能自动剔除。虽然这种方式简便、成本低廉
# 可靠性低和负载分配不均衡。适用于图片服务器集群和纯静态页面服务器集群
upstream api {
    ip_hash;
    server 192.168.43.129;
    server 192.168.43.135;
}

weight

# 按照指定的权重, 分配请求. 只要用于服务器性能有明显差异的情况~ 比如 135 的性能是129 的3倍, 那就多分配请求给 135 
upstream api {
    server 192.168.43.129 weight=5;
    server 192.168.43.135 weight=15;
}

其它第三方分配策略

# fair 按服务器响应时间分配请求.
upstream api{ 
    server 192.168.43.129;
    server 192.168.43.135;; 
    fair;
}

# url_hash 按照 url hash结果来分配请求
upstream api{ 
    server 192.168.43.129;
    server 192.168.43.135;
    hash $request_uri; 
    hash_method crc32; 
}

upstream 为服务器设置状态

upstream api{
    server 192.168.43.129 down; # down 表示当前服务器暂时不参与负载
    server 192.168.43.135 weight=1; # weight 值越大表示负载权重越大.
    server 192.168.43.136 backup; # backup 其它所有非backup 机器down 或者忙碌时,请求 backup 机器.

   
    # max_fails 允许请求失败次数, 返回 proxy_next_upstream 模块定义的错误
    # fail_timeout 在 max_fails 次失败后, 暂停的时间.
    server 192.168.43.136 max_fails=1 fail_timeout=30s; 

}

Larwas
请先登录后发表评论
  • latest comments
  • 总共0条评论