环境介绍:
新建3台centos7主机,分别是192.168.145.130代理服务器 / 192.168.145.131(实际服务器1)/ 192.168.145.132 (实际服务器2),三台服务器都已安装nginx
配置介绍:
192.168.145.130代理服务器的nginx.conf文件添加转发信息(放于http模块里面)
upstream a.com {
server 192.168.145.131:80;
server 192.168.145.132:80;
}
server{
listen 80;
server_name a.com;
location / {
proxy_pass http://a.com; (windows修改host文件,将a.com解析到192.168.145.130测试)
proxy_set_header Host $host; (这一行的作用是把原http请求的Header中的Host字段也放到转发的请求里。如果不加这一行的话,nginx转发的请求header里就不会有Host字段,而服务器是靠这个Host值来区分你请求的是哪个域名的资源的。
)
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
192.168.145.131(实际服务器1)的nginx.conf文件添加转发信息(放于http模块里面)
server{
listen 80;
server_name a.com;
index 1FQ1102A8-2.jpg; (指定访问主页显示内容,我这里用一张图片测试)
root /var/; (图片所处路径)
access_log /www/wwwlogs/access2.log; (指定日志访问记录文件)
}
192.168.145.132(实际服务器1)的nginx.conf文件添加转发信息(放于http模块里面)
server{
listen 80; (监听80端口)
server_name a.com;
index 1.jpg; (指定访问主页显示内容,我这里用一张图片测试)
root /var/; (图片所处路径)
access_log /www/wwwlogs/access2.log; (指定日志访问记录文件)
}
测试结果:
我在本地电脑访问a.com时候,浏览器第一次打开的是服务器1的图片
刷新网页,发现图片变成另外一张,既是服务器2的图片,证明测试生效
接下来我手动关闭其中一台服务器,然后多次刷新网页,a.com依然可以访问,但是只显示一张图片,测试通过。
总结:做这个测试的目的是为了验证nginx的负载均衡,但是这只是初步测试,其实nginx的功能远远不止如此,比如自带的3种负载均衡模式轮询,加权轮询,Ip hash,可以跟进不通访问者设定不同规则,合理分配服务器资源,降低延迟,这些后续测试。