Nginx 简单负载均衡使用记录

233次阅读
没有评论

共计 1131 个字符,预计需要花费 3 分钟才能阅读完成。

前提:

我们用thinkphp做了一个项目,需要做个简单的负载均衡,用Nginx做,为了session可以节点之间通用,使用了一个独立的Redis服务器做session存储

下面是Nginx的配置文件

http {
    include       mime.types;
    default_type  application/octet-stream;

    # 服务器组 名称 test-server
    upstream  test-server {
        # ip_hash 每个请求都根据访问ip的hash结果分配,经过这样的处理,每个访客固定访问一个后端服务,如下配置(ip_hash可以和weight配合使用)
        # least_conn 将请求分配到连接数最少的服务上
        # fair 按后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx本身是不支持fair的,如果需要使用这种调度算法,必须下载Nginx的upstream_fair模块
        # url_hash 按访问URL的hash结果来分配请求,使每个URL定向到同一个后端服务器,后端服务器为缓存时比较适用。另外,在upstream中加入hash语句后,server语句不能写入weight等其他参数。Nginx本身是不支持url_hash的,如果需要使用这种调度算法,必须安装Nginx 的hash软件包
        ip_hash;  ## 调度算法 ,当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup
        server    localhost:8001 weight=1; # weight 轮询权重
        server    localhost:8002 weight=2; 
        server    localhost:8003 down; # 表示当前的server暂时不参与负载均衡
        server    localhost:8004 backup; # 预留的备份机器。当其他所有的非backup机器出现故障或者忙的时候,才会请求backup机器
        server    localhost:8005 max_fails=3 fail_timeout=20s;# max_fails,允许请求失败的次数,默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误
        # fail_timeout,在经历了max_fails次失败后,暂停服务的时间。max_fails可以和fail_timeout一起使用
        server    localhost:8006;
    }

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
            proxy_pass http://test-server; # test-server 服务器组名称
        }
    }
}

正文完
 0
Eric chan
版权声明:本站原创文章,由 Eric chan 于2020-03-15发表,共计1131字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。