理解概念:
反向代理:代理服务器进行交互,当接收到来自客户端的请求后,根据一定的策略将请求转发给内部的一台或多台服务器处理,并将得到的结果返回给客户端。
负载均衡:作为一个中间层根据不同的策略来分配请求,接收客户端的请求并将这些请求分配给后端的一个或多个服务器,当有多台应用服务器提供相同的服务时,Nginx 可以作为前端服务器,根据不同的算法(如轮询、最少连接数等)将请求分发到不同的后端服务器上。
实现:
负载均衡:
1)服务器设置
为了测试方便起见,可以在不同端口部署多个网站,模拟web服务器集群
2) 修改Nginx配置 nginx/conf/nginx.conf
在http中添加上游组upstream,配置服务器列表,myservers是列表名称,内部每个server后面是服务器的IP和端口
upstream myservers {
server 192.168.0.113:81;
server 192.168.0.113:82;
server 192.168.0.113:83;
}
添加server,配置代理将请求发送给myservers处理
server {
listen 8000;
server_name localhost;
charset utf-8;
location / {
proxy_pass http://myservers;
}
}
3) 重启Nginx
./nginx -s reload
4) 测试
浏览器测试8000端口访问hello接口时,发现接口的调用是轮询式的。
5)配置权重(根据需求配置)
每个服务器的处理能力不同,可以配置权重weight,让能力强的服务器处理更多请求
upstream myservers {
server 192.168.0.113:81 weight=1;
server 192.168.0.113:82 weight=2;
server 192.168.0.113:83 weight=1;
}
反向代理:
部署web网站,端口是8888,现在需要通过URL:http://manage.blb.com/也能访问到该接口
1.在\etc\hosts文件中添加:
127.0.0.1 manage.blb.com
2.在nginx的html下创建网站目录demo8888,创建index.html页面
3.添加虚拟主机
server{
listen 8888;
server_name localhost;
root html/demo8888;
index index.html;
}
4.修改nginx.conf,添加配置
server {
listen 80;
server_name manage.blb.com;
charset utf-8;
location / {
proxy_pass http://127.0.0.1:8888;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
proxy_pass 是原来的域名和端口,127.0.0.1就是localhost server_name 后面是映射后的域名 listen 后面是映射后的端口
5重启nginx
nginx -s reload