环境搭建拓扑图
具体实现
第一步:搭建nginx反向代理服务器
nginx安装教程传送门
编辑配置文件nginx.conf(常见位置:/etc/nginx/conf.d/default.conf或者 /usr/local/nginx/conf)配置上游服务器,一定要注意千万别丢了分号!!!!!
1、定义上游服务器
默认使用的是轮询算法:web1 we2 we1 web2
upstream 自定义名称 {
server ip1:端口;
server ip2:端口;
}
自行设置权重:三次请求中,1次web1 2次web2;
upstream 自定义名称 {
server ip1:端口 weight 1;
server ip2:端口 weight 2;
}
ip绑定
upstream 自定义名称 {
ip_hash;
server ip1:端口;
server ip2:端口;
}
2、使用上游服务器
在http{}块中添加如下
location / {
proxy_pass http://上游服务器自定义的名称; #主要配置
#按需配置以下配置
proxy_set_header Host $host; #只要用户在浏览器中访问的域名绑定了 VIP VIP 下面有RS;则就用$host; host是访问URL中的域名和端口 www.xxxx.com:80
proxy_set_header X-Real-IP $remote_addr; #把源IP 【$remote_addr,建立HTTP连接header里面的信息】赋值给X-Real-IP;这样在代码中 $X-Real-IP来获取 源IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#在nginx 作为代理服务器时,设置的IP列表,会把经过的机器ip,代理机器ip都记录下来,用 【,】隔开;代码中用 echo $x-forwarded-for |awk -F, '{print $1}' 来作为源IP
}
举例截图:
第二步:搭建web1服务器,为了测试方便,简单搭建
yum install -y httpd
vim /var/www/html/index.html #编辑上具有识别性的文字等信息
第三步:搭建web2服务器和web1,可以一样,可以不同,按照自己的需要配置
yum install -y httpd
vim /var/www/html/index.html #编辑上具有识别性的文字等信息
测试结果:
默认轮询算法: web1出现一次,web2出现一次…
权重算法:因为web1的权重是1,web2 的权重是2; 因此发三次请求,两次web2,一次web1;
ip绑定:ip地址绑定以后只能访问绑定的服务器