配置“另一台主机”上的站点,在 server2 上创建 /etc/nginx/sites-available/server2 配置文件,内容如下:
server {
listen 8000;
root /var/www/html;
index index2.html index.htm index.nginx-debian.html;
server_name 192.168.1.102;
location / {
try_files $uri $uri/ =404;
}
}
注意监听端口和 index 页面的配置变化。在 /var/www/html 目录下创建 index2.html 文件,作为 server2 站点的 index 页面,内容如下:
<html>
<head>
<title>Index Page From Server2</title>
</head>
<body>
<h1>This is Server2, Address 192.168.1.102:8000.</h1>
</body>
</html>
PS:为了测试目的,default 站点和 server2 站点配置在同一个主机 server2 上,且页面稍有不同。实际环境中通常将这两个站点配置在不同的主机上,且内容一致。
运行 sudo ln -s /etc/nginx/sites-available/server2 /etc/nginx/sites-enabled/ 命令启用刚刚创建的 server2 站点。
重启 nginx 服务,此时访问 http://192.168.1.102:8000 即可获取刚刚创建的 index2.html 页面:
$ curl 192.168.1.102:8000
<html>
<head>
<title>Index Page From Server2</title>
</head>
<body>
<h1>This is Server2, Address 192.168.1.102:8000.</h1>
</body>
</html>
负载均衡测试
回到负载均衡服务器即虚拟机 server1 上,其配置文件中设置的 反向代理 URL 为 http://backend 。
由于未曾配置域名解析服务,无法将 URLhttp://backend 定位到正确的位置。
可以修改 server1 上的 /etc/hosts 文件,添加如下一条记录:
127.0.0.1 backend
即可将该域名解析到本地 IP ,完成对负载均衡服务器的访问。
重启 nginx 服务,在 server1 上访问http://backend ,效果如下:
$ curl http://backend
<html>
<head>
<title>Index Page From Server1</title>
</head>
<body>
<h1>This is Server1, Address 192.168.1.102.</h1>
</body>
</html>
$ curl http://backend
<html>
<head>
<title>Index Page From Server2</title>
</head>
<body>
<h1>This is Server2, Address 192.168.1.102:8000.</h1>
</body>
</html>
$ curl http://backend
<html>
<head>
<title>Index Page From Server1</title>
</head>
<body>
<h1>This is Server1, Address 192.168.1.102.</h1>
</body>
</html>
$ curl http://backend
<html>
<head>
<title>Index Page From Server2</title>
</head>
<body>
<h1>This is Server2, Address 192.168.1.102:8000.</h1>
</body>
</html>
从输出中可以看出,server1 对负载均衡服务器http://backend 的访问,完成了对应用服务器 server2 上两个 Web 站点的 轮询 ,起到负载均衡的作用。








