nginx的反向代理

ngx_http_upstream_module模块用于定义可以由代理传递、fastcgi传递、uwsgi传递、scgi传递和memcached传递(proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass, memcached_pass)指令引用的服务器组。

例如:

http {
....
    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;
    }
}

一、对后端服务器进行定期的健康检查

http{
resolver 10.0.0.1;

    upstream dynamic {
        zone upstream_dynamic 64k;

        server backend1.example.com      weight=5;
        server backend2.example.com:8080 fail_timeout=5s slow_start=30s;
        server 192.0.2.1                 max_fails=3;
        server backend3.example.com      resolve;

        server backup1.example.com:8080  backup;
        server backup2.example.com:8080  backup;
    }
}



server {
    location / {
        proxy_pass http://dynamic;
        health_check;
    }
}

参数说明:

参数说明
resolve监视与服务器域名对应的IP地址的变化,并自动修改上游配置,而不需要重新启动nginx。服务器组必须驻留在共享内存中。
weight=number定义权重
max_conns=number限制后端节点的最大连接数;默认值为0,即没有做限制
max_fails=number设置未成功尝试与服务器通信的次数。默认情况下,不成功尝试的次数为1,0为禁用。
fail_timeout设置未成功尝试与服务器通信的超时时间,默认是10s
backup将服务器标记为备份服务器。当主服务器不可用时,它将被传递请求。
down此服务器为永久不可用


二、会话保持设置
1、ip_hash

upstream backend {
    ip_hash;

    server backend1.example.com;
    server backend2.example.com;
    server backend3.example.com down;
    server backend4.example.com;
}

2、配置memcached保持连接

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;
    }

}

3、对于HTTP,代理HTTP版本指令应该设置为1.1,并且应该清除连接头字段

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 "";
        ...
    }
}

4、对于FastCGI服务器,需要设置FastCGI保存连接

upstream fastcgi_backend {
    server 127.0.0.1:9000;

    keepalive 8;
}

server {
    ...

    location /fastcgi/ {
        fastcgi_pass fastcgi_backend;
        fastcgi_keep_conn on;
        ...
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值