nginx反向代理和负载均衡

1.nginx反向代理实现隐藏真实处理服务器IP地址
反向代理有两种方法
第一种,指定一个固定的IP地址
第二种,指定多个固定的IP地址
实例:
第一种:
首先创建两个站点 端口分别为 81 82
站点信息分别写 81.com 82.com
我们先用 81端口代理82端口
配置文件如下

server {
listen 81;
server_name 81.com;
location /
{
proxy_pass http://192.168.88.112:82;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
访问IP:81测试
在这里插入图片描述
访问81端口 显示的是82的站点页面,代理成功 ,如果没有显示82的站点页面则表示代理失败
2.nginx的负载均衡(反向代理多个固定IP)
nginx的负载均衡:nginx通过upstream和proxy_pass实现了负载均衡,本质上也是nginx的反向代理,只不过后端的server为多个。
语法:
upstream name {…}
name是自定义的一个名字,而{}则是需要定义的内容,只能在http块定义,不能在server块里定义。定义完之后可在location块
下写入如下代码进行调用:http://name
2.1nginx的6种负载均衡方式
6种负载均衡算法:

1.轮询算法(默认): 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream name {
server 192.168.1.1:80 ;
server 192.168.1.2:81 ;
}

适合场景:服务器配置相当,平稳使用。
2.ip_hash算法:每个请求按访问IP的hash结果分配,同一个IP客户端固定访问一个后端服务器;

upstream name {
ip_hash; ###添加参数支持哈希
server 192.168.1.1:80 ;
server 192.168.1.2 :81 ;

}

适合场景:电商门户类型,固定用户较多。
3.权重算法:指定轮询几率,weight和访问比率成正比。用于后端服务器性能不均的情况

upstream name {
server 192.168.1.1:80 weight=1;
server 192.168.1.2:81 weight=9;
}

适合场景:集群架构配置相差较大,权重算法较为节省资源,有多用多,有少则少。
4.最少连接(least_conn):把请求转发给连接数较少的后端服务器进行处理

upstream name {
least_conn;
server 192.168.1.1:80 weight=1;
server 192.168.1.2:81 weight=1;
}

适合场景:请求处理时间长短相差较大的业务,常造成服务器个别过载的情况
5.fair(第三方):按照后端服务器的响应时间来分配请求,响应时间短的优先分配
upstream name {
server 192.168.1.1:80 weight=1;
server 192.168.1.2:81 weight=1;
fair;
}

适合场景:业务非常重视响应时间的,并且对服务器的配置不需要精打细算的。
6.url_hash(第三方):按访问URL的hash结果来分配请求,使每一个URL定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream name {
hash $request_url;
server 192.168.1.1:80 weight=1;
server 192.168.1.2:81 weight=1;
}

适合场景:固定用户较多,且每次登陆次数过多的。

实例 第一种 轮询算法
用80端口 代理 81 82端口
配置文件
upstream name {
server 192.168.88.112:81 ;
server 192.168.88.112:82 ;
}
server {
listen 80;
server_name localhost;
location /
{
proxy_pass http://name/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
}
}

重启nginx
访问80端口测试即可
在这里插入图片描述
刷新一次
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值