共计 1761 个字符,预计需要花费 5 分钟才能阅读完成。
Nginx 的负载均衡功能,其实实际上和 nginx 的代理是同一个功能,只是把代理一台机器改为多台机器而已。Nginx 的负载均衡和 lvs 相比,nginx 属于更高级的应用层,不牵扯到 ip 和内核的修改,它只是单纯地把用户的请求转发到后面的机器上。这就意味着,后端的 RS 不需要配置公网。
一、实验环境
Nginx 调度器 (public 172.16.254.200 privite 192.168.0.48)
RS1 只有内网 IP (192.168.0.18)
RS2 只有外网 IP (192.168.0.28)
二、配置文件
在 nginx 调度器上编辑配置文件
# vim /usr/local/nginx/conf/vhosts/lb.conf
添加如下内容:
upstream test {
ip_hash;
server 192.168.0.18;
server 192.168.0.28;
}
server {listen 80;150
server_name www.aminglinux.com;
location / {proxy_pass http://test/;
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 代理配置如出一辙,只是多了一个 upstream,这个 upstream 用来定义后端的 RS,可以只写一个。ip_hash 为 nginx 的一种调度算法,加上这一行后会达到这样的效果,即一个用户的请求会适中被分发到固定的一个 RS 上。这样的好处是,可以避免把同一个用户的请求分发到不同的机器上而导致 session 丢失的情况。upstream 里面,RS 后面的 ip 后面还可以加权重,比如 ”server 192.168.31.100 weight=100;”。还有一点要注意,upstream 后面的 test 是自定义的一个名字,可以随便写,唯一的要求是要和 proxy_pass 后面保持一致。
下面关于 Nginx 的文章您也可能喜欢,不妨参考下:
CentOS 7.2 下编译安装 PHP7.0.10+MySQL5.7.14+Nginx1.10.1 http://www.linuxidc.com/Linux/2016-09/134804.htm
搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm
CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm
Nginx 高级应用 – 负载均衡与 rewrite 规则 http://www.linuxidc.com/Linux/2017-02/140476.htm
CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm
Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm
Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm
Nginx 的 500,502,504 错误解决方法 http://www.linuxidc.com/Linux/2015-03/115507.htm
CentOS 7 编译安装 Nginx1.10.2 脚本启动失败解决思路 http://www.linuxidc.com/Linux/2017-01/139794.htm
Nginx 简单实现网站的负载均衡 http://www.linuxidc.com/Linux/2017-02/140351.htm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-02/140549.htm