Ngnix Proxy模块的应用之负载均衡
Proxy 模块介绍
在我之前的文章提到过,Nginx可以提供反向代理加速、基于应用层的负载均衡并能对后端
服务器做健康状态检测。下面我们就动手操作一下,看如何实现上述功能。
实验环境
主机名 | 主要功能 | 外网地址 | 内网地址 |
code | nginx代理服务器 | 192.168.1.11 | 192.168.10.1 |
node1 | httpd应用服务器1 | 192.168.10.2 | |
node2 | httpd应用服务器2 | 192.168.10.3 |
如果之前没有接触过Nginx,请看我之前写过的博文Nginx的编译安装。
配置Proxy
一、配置反向代理,并利用node1与node2实现负载均衡。
1.code上的配置,编辑配置文件
vim /usr/local/nginx/conf/nginx.conf
在主配置文件的http段使用upstream定义一个集群,后面的httpserver是集群的名称。 upstream httpserver { server 192.168.10.2; server 192.168.10.3; } 之后在location / 中使用proxy_pass设置将用户的所有请求全部代理到刚才定义好的负载均衡集群中。 location / { proxy_pass http://httpserver; root html; index index.html index.htm; }
启动服务:[[email protected] ~]# /usr/local/nginx/sbin/nginx
重启服务:[[email protected] ~]# /usr/local/nginx/sbin/nginx -s reload2.node1上的配置
[[email protected] ~]# yum install httpd -y 安装httpd
[[email protected] ~]# service httpd start 启动httpd服务
[[email protected] ~]# echo “This is node1 page” > /var/www/html/index.html 定义一个主页面。3.node2上的配置
[[email protected] ~]# yum install httpd -y 安装httpd
[[email protected] ~]# service httpd start 启动httpd服务
[[email protected] ~]# echo “This is node2 page” > /var/www/html/index.html 定义一个主页面。配置不同的页面,方便我们区分。4.打开浏览器输入代理服务器的地址192.168.1.11进行测试:
可以看到成功的进行了负载均衡。
5.将node2上面的httpd服务停掉,进行测试。
[[email protected] ~]# service httpd stop
代理服务器检测到了node2的健康状态不正常,则后续的请求全部发给了node1进行响应。
6.将node2上面的httpd服务启动,再进行测试。
[[email protected] ~]# service httpd start
在代理服务器检测到node2的健康状态正常后,又将用户的请求负载至两台node上。