Nginx负载均衡

Nginx负载均衡

七层服务使用的是http的指令块,四层服务则使用stream指令块,http和stream指令块是同级的
如果proxy_pass指令是用URI指定的,那么当请求被传递到服务器时,与位置匹配的规范化请求URI部分将被指令中指定的URI替换

# 例:用户请求"IP/name/"会被转到"127.0.0.1/remote/"
location /name/ {
   
   
    proxy_pass http://127.0.0.1/remote/;
}


upstream配置

官方文档
在这里插入图片描述

七层均衡

nginx3配置(192.168.113.145)
错误的连接由proxy_next_upstream, fastcgi_next_upstream等指令决定,且默认情况下,后端某台
服务器出现故障了,nginx会自动将请求再次转发给其他正常的服务器(因为默认
proxy_next_upstream error timeout)。
所以即使我们没有配这个参数,nginx也可以帮我们处理error和timeout的相应,但是没法处理404等报
错。
为了看清楚本质,可以先将proxy_next_upstream设置为off,也就是不将失败的请求转发给其他正常
服务器,这样我们可以看到请求失败的结果。

upstream web {
   
   
    #通过这个指令,可以处理当后端服务返回404等报错时,直接将请求转发给其他服务器,而不是把报错信息返回客户端。
	server 192.168.113.146weight=1 max_fails=3 fail_timeout=9s;
	server 192.168.113.147 weight=1;
}
server {
   
   
	listen 80;
	server_name localhost;
	location / {
   
   
		proxy_pass http://web;
		# 通过这个指令,可以处理当后端服务返回404等报错时,直接将请求转发给其他服务器,而不是把报错信息返回客户端。
		# proxy_next_upstream error http_404 http_502;
		proxy_next_upstream off;
		# 如果不加该参数,那么在代理时,传入后端的HOST信息就是IP,那么会导致在访问时产生问题
		# 设置或修改代理到后端请求头的内容
		proxy_set_header Host $host;
		# 通过该参数记录真实客户端地址(该变量值有两个,"$proxy_add_x_forwarded_for"记录了多个IP,"$remote_addr"只记录一个IP)
		proxy_set_header X-Forwarded-For  $proxy_add_x_forwarded_for;
		proxy_set_header X-Real-IP $remote_addr;
		# 代理服务器与后端节点建立链接的超时时间
		proxy_connect_timeout 60;
		# 代理服务器读取后端响应的超时时间
		proxy_read_timeout 60;
		# 代理服务器发送请求给后端节点的超时时间
		proxy_send_timeout 60;
	}
}
# 测试
# 设置的超时时间为9
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值