nignx配置利用反向代理配置负载均衡

1.nignx配置利用反向代理配置负载均衡
1.1 简单说下代理与反向代理:

简单来来说 正向代理是代理的客户端,为客户端去收发请求,比如我们常用的ssFQ软件,是一个典型的正向代理软件,反射代理呢,是代理的服务器端,为服务器端收发请求,使真实的服务器对客户端不可见

1.2 利用nginx的反向代理功能实现负载均衡
http{
    #负载
    upstream mytest{
        server 192.168.81.131:80 weight=3 max_fails=3 fail_timeout=15;
        server 192.168.81.132:80 weight=2 ;
        server 192.168.81.133:80  down;
        server 192.168.81.133:80  backup;
        ip_hash;
    }
    server{
        listen 80;
        server_name www.lnss.com;
        index index.html index.php;
        location / {
            proxy_pass http://mytest;
            proxy_redirect off;
            proxy_set_header X-Real_IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarder_for;
            proxf_set_header Host $host;
        }
    }
}
  1. nginx的内置负载策略有三种,它的负载均衡是通过upstream模块实现的
    • 轮询(默认): 它会根据请求次数,将每个请求均匀的分配到每台服务器
    • 最少链接: 将请求分配给链接最少的服务器
    • ip hash 它会绑定处理请求的服务器,第一次请求后,会根据客户端的ip算出一个hash值,指定到一个服务器,以后这个ip再请求都会只请求这个服务器(可以简单的处理下sessions共存问题,但我们不建议这么做,以后有机会再说吧)

相关参数说明:

  • proxy_pass http://mytest 表示把所有的请求都转发到mytest服务器组中
  • upstream模块 配置反向代理服务器组
  • upsteam > server 配置处理请求的服务器ip或者域名,端口可不写,默认为80
  • weight 权重 默认为1 值越大,请求次数分配给的就越多
  • max_fails 默认为1 某台服务器允许失败的次数,超过这个次数,在fail_timeout时间内不再分配给这个服务器
  • backup 备份机,当所有服务器挂了后,它才会生效 ,可以使用这个特性来做个热备份呗
  • 还有好多个参数呢 …
  • 当然还有一些静态代理啥的, 以后有机会再说吧…
1.3 再来个知识点吧 设置负载均衡后,后端服务器,如何获取真实的客户端ip呢?(这里以php为例了呀,别的我也不会!)

当我们没有用上负载,cdn啥的时候,我们只是把应用服务器暴露在公网上,任由别人来那啥的时候(你懂的~~~),我们只需要在在代码里使用 $_SERVER['REMOTE_ADDR']就可以获取客户端的ip,(小黑板:这个ip是不会伪造的,它是跟你服务器握手的最后一个ip,是可靠的),但是当我们使用上负载后呢,可以使用

  • $_Server['HTTP_CLIENT_IP']来获取,但是服务器上不一定实现了,客户端可以伪造,不可信任

  • $_SERVER['HTTP_X_FORWARDED_FOR']也可以获取到,是用来表示经过代理后客户端ip,是可以伪造的,不可信任

    那么问题来了,如何严格来获取客户端真的ip呢

    思路就是,在nginx负载这里获取真实的ip再转发到php服务器,如上面的那种配置


有啥问题,再留言吧~~~~

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值