1. 负载均衡
nginx提供反向代理时如果是一个集群(如图,三台服务器提供同样的服务)的话,我们希望所有的访问请求能够均匀地分配给每个应用服务器,而不是说,只有服务器A在提供请求,而B和C不做任何事情,这就叫负载均衡。
2. nginx配置负载均衡
在nginx中增加如下配置:
upstream test表示上游的两个服务器,proxy_pass表似乎代理到上游的两个服务器
3. 基本例子
这里配置三台服务器,一台是nginx服务器,两台作为集群(可以简化到两台)。不过,这里没必要每台机器都装一个nginx。通过如下代码搭建一个简单的http服务,在不同的机器上分别运行这个服务(注意,响应信息记得换下,以区分不同机器的http服务)
const http = require('http');
const server = http.createServer((req, res) => {
res.writeHead(200, { 'Content-Type': 'text/plain' });
res.end('192.168.66.1: hello, nginx'); // 这里的响应信息换成自己想要的响应信息
});
server.listen(88, () => {
console.log('Server is running on port 88');
});
在两台机器上运行该代码:node test.js
运行后,我们访问nginx服务器的地址:192.168.66.129,不断刷新浏览器,会发现浏览器在以下两个界面不断切换:
这里现象和浏览器可能有点关系,用Microsoft Edge无法观测到这一现象,用火狐可以,原因暂时不明确,有知道原因的欢迎留言~