网站首页 > 技术教程 正文
通常我们会使用Nginx做反向代理和负载均衡,都是http协议,其实Nginx还可以转发TCP,而且配置基本很相似(下面的原理也适用于http)。
原理图如下:
正向代理和反向代理
正向代理:就是我们所说的代理,例如客户向服务器A发请求,但是A不接受除了服务器B以外的请求,然后客户委托服务器B向服务器A发请求,然后通过服务器B做中间人传输信息。这个过程是对服务器A是透明的,它只知道和服务器B通信。
反向代理:正向代理是客户委托,那么反向代理就是服务器做委托。例如客户向服务器A做请求,但是服务器A不知道怎么处理,那么A就委托服务器B处理,然后把结果返回给客户,这个过程对客户是透明的。
所有负载均衡就是利用了反向代理,把客户的请求分发到不同的主机上处理,客户并不需要知道处理的过程。
负载均衡策略
Nginx 提供轮询(round robin)、IP 哈希(client IP)和加权轮询 3 种方式,默认情况下,Nginx 采用的是轮询。
轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
加权轮询
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
重试策略
可以为每个 backserver 指定最大的重试次数,和重试时间间隔,所使用的关键字是 max_fails 和 fail_timeout。
热机策略
当所有的非备机(non-backup)都宕机(down)或者繁忙(busy)的时候,就会使用由 backup 标注的备机。必须要注意的是,backup 不能和 ip_hash 关键字一起使用。
在nginx.conf文件配置,是和http同级的
stream {
upstream backend {
#hash $remote_addr consistent;
server 10.118.12.92:10001 weight=5;
#server 127.0.0.1:12345 max_fails=3 fail_timeout=30s;
#server unix:/tmp/backend3;
}
server {
listen 10001;
proxy_connect_timeout 5s;
proxy_timeout 3600s;
proxy_pass backend;
}
}
注意如果放在http里面,那么这个配置就是负载均衡http了。
猜你喜欢
- 2024-10-10 Nginx和Firewall都可以实现四层转发,你喜欢哪一个?
- 2024-10-10 nginx做转发时,带下划线字段的header内容丢失
- 2024-09-14 NGINX 应用性能优化指南(第二部分):反向代理缓冲
- 2024-09-14 10《Nginx 入门教程》Nginx 的反向代理(上)
- 2024-09-14 Kubernetes中如何转发请求到集群外?
- 2024-09-14 Nginx 全面攻略:动静分离、压缩、缓存、黑白名单、跨域、高可用
- 2024-09-14 Portainer实用教程Portainer如何使用 Nginx 容器实现端口转发?
- 2024-09-14 Nginx TCP代理转发和负载均衡(nginx代理tcp转http)
- 2024-09-14 记一次nginx无法转发到后端的问题
- 2024-09-14 Nginx的请求数据处理流程(nginx的请求数据处理流程是什么)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)