负载均衡 - 关于nginx反向代理的几点疑问?

查看:131
本文介绍了负载均衡 - 关于nginx反向代理的几点疑问?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我使用两台服务器来配置反向代理。
服务器A通过以下配置将全部请求转发到 test 服务器组(虽然组里只有1个)

listen 80;

root   /home/www;

......

upstream test {
    server 123.45.567.89:80 weight=1;  // 服务器B
}

location / {
    proxy_pass http://test;
}

通过浏览器访问服务器A ,返回了服务器B里的内容。
问题来了:
1.服务器B(被反向代理的服务器)貌似无需任何配置?
2.只要被代理的服务器没有做一些屏蔽设置,是不是我就可以加入到 upstream 里来做我的反向代理服务器?
3.用反向代理来做负载均衡,那么是不是服务器B上的项目要和服务器A上的项目一致?

解决方案

第1点:简单来说被代理的对象是不需要什么配置的,但是要注意的是如果你要在B上处理请求的来源IP,那么需要对A上的nginx做一些配置,把源IP放到请求头里比如 X-Real-IP:xxx.xxx.xx.xx 然后B那里通过这个请求头获得真正的请求来源IP,否则你只能得到A的IP

第2点:upstream 没用过,通常我用 proxy_pass

location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_set_header X-NginX-Proxy true;

      proxy_pass http://127.0.0.1:6101/;
      proxy_redirect off;
      proxy_buffering off;
    }

第3点:通常来说是的。

这篇关于负载均衡 - 关于nginx反向代理的几点疑问?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆