架构 服务器 数据库服务器配置学习程序员

Nginx反向代理与负载均衡

2017-07-28  本文已影响229人  Separes

1.说明:

结合反向代理X负载均衡的方式,一方面可以有效保护集群中的服务器,免于直接暴露在客户端的危险,另一方面有效缓解服务器压力,是时下最通用的优化策略之一。

2.使用:

以下代码在本人 nginx version: nginx/1.10.3 下可用,其它版本未知

upstream ng_angents{
    server 10.0.0.33:80;
    server 10.0.0.34:80;
    server 10.0.0.35:80;
    server 10.0.0.36:80;
}

关于 nginx upstream

upstream提供了多种针对负载均衡服务器池的分配方法可供选用,如轮询(默认)、weight(权重)、ip_hash(解决session问题)、fair(服务器响应时间)、url_hash(字面意思)等。

这里有一篇文章可供参考:nginx upstream的分配方式

需要注意的是,在upstream中加入hash语句,server语句中不能写入weight等其他的参数。

location /{
    # 关闭代理缓存
    proxy_buffering off;
    # 代理服务器集群
    proxy_pass http://ng_angents;
    # 代理服务器响应头
    proxy_redirect off;
    # 真实信息
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

关于 nginx proxy
以上内容根据实际需求灵活调整。

需要注意的是,配置反向代理时,反斜杠 "/" 的位置可能会影响代理解析结果,这里不再赘述。

The first parameter assigns the timeout for keep-alive connections with the client. The server will close connections after this time.

keepalive_timeout在nginx中用于会话保持,即在指定时间内对于服务器的访问请求将被用于保持或刷新时效,直到没有新的请求并且时间结束为止。

keep-alive对于负载均衡的影响在于,对于单次的请求将会在keep-alive时效内被分发到同一台服务器上,可能会在某些场景下影响实际的业务需求,比如对于每一次请求的强制轮询或随机分发。

上一篇 下一篇

猜你喜欢

热点阅读