nginx反向代理负载均衡
目录
- 实验环境
- 安装并配置nginx
- Nginx的反向代理
- Nginx的负载均衡
- 一台nginx代理服务器,两台web服务器。
nginx反向代理服务器:192.168.88.152
web1:192.168.88.153
web2:192.168.88.163
一、环境准备
- centos6.5x86_64
- Nginx安装包
- 关闭防火墙和Selinux
[root@ localhost ~]# service iptables stop
[root@ localhost ~]# setenforce 0
二、安装并配置nginx反向代理服务器
- nginx的安装
从Nginx官网下载页面(http://nginx.org/)下载Nginx最新版本安装包;
#安装编译工具和依赖库文件
yum -y install gcc gcc-c++ zlib-devel pcre-devel openssl-devel
#上传nginx包,并解压
tar zxf nginx-1.16.1.tar.gz
cd nginx-1.16.1
#编译安装nginx
./configure
make && make install
- 在两台web服务器上安装web(两台上面都执行)
yum -y install httpd
- 修改web页面(两台都要做)
#web1操作
echo "<h1>web1.test.com</h1>" >/var/www/html/index.html
#web2操作
echo "<h1>web2.test.com</h1>" >/var/www/html/index.html
- 启动httpd
service httpd start
之后在浏览器中正常访问
三、反向代理的配置
- 配置nginx反向代理服务器
cd /usr/local/nginx/conf/
cp nginx.conf nginx.conf.bak
vim nginx.conf
检查nginx配置文件正确
/usr/local/nginx/sbin/nginx -t
pkill -9 nginx
/usr/local/nginx/sbin/nginx
之后在浏览器中直接访问nginx反向代理服务器的地址,即可访问到88.153上的信息。
- 看一下web上的httpd的日志
tail /var/log/httpd/access_log
看到是反向代理服务器的ip而不是客户端的ip。
四、负载均衡的配置
- 在nginx服务器上
vim /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/sbin/nginx -t
pkill -9 nginx
/usr/local/nginx/sbin/nginx
之后通过浏览器访问192.168.88.152,nginx反向代理服务器,则会依次显示88.153和88.163web服务器上的网页信息。在权重为1时,其概率是同等的。可以根据两个web服务器的性能不同调整权重值。
- 配置nginx反向代理服务器,进行健康状态检查
在upstream{}的weight后添加max_fails和fail_timeout,如下所示:
之后停止一个web1服务器,在浏览器中继续访问反向代理服务器,发现其只能访问到web2服务器了,之后再将web1启动,访问发现web1和web2都好了。这说明nginx的健康状态检查配置成功。