Nginx反向代理、负载均衡功能
环境:
[root@db02 ~]# uname -a
Linux db02 2.6.-.el6.x86_64 # SMP Tue Mar :: UTC x86_64 x86_64 x86_64 GNU/Linux
[root@db02 ~]# cat /etc/redhat-release
CentOS release 6.9 (Final)
Nginx反向代理知识概念
反向代理与正向代理
此图来源: http://colabug.com/866451.html
反向代理
- 接收请求,完成请求处理
- 接收响应,返回告知响应
数据转发(正向代理)
- 接收请求,转发数据请求
- 接收响应,转发数据响应
nginx反向代理设置
nginx通过proxy_pass_http 配置代理站点,upstream实现负载均衡。
upstream模块: 类似于一个池塘,将nginx节点放置到池塘中
proxy_pass_http 模块: 用池塘里面的nginx节点,利用proxy进行调用
负载均衡的配置文件
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
upstream server_pools {
server 10.0.0.7:;
server 10.0.0.8:;
server 10.0.0.9:;
}
server {
listen ;
server_name bbs.zxpo.com;
location / {
proxy_pass http://server_pools;
}
}
}
负载均衡参数介绍
upstream模块内参数 |
参数说明 |
server 10.0.10.8:80 |
负载均衡后面的RS配置,可以是IP或域名,如果端口不写,默认是80端口。高并发场景下,ip可换成域名,通过DN做负载均衡 |
weigth = 1 |
代表服务器的权重,默认值是1。权重数字越大表示接受的请求比例越大 |
max_ fails=5 |
Nginx尝试连接后端主机失败的次数,这个值是配合proxy_next_upstream、 fastcgi_next_upstream和memcached_next_upstream这三个参数来使用的。当nginx接收后端服务器返回这三个参数定义的状态码时,会将这个请求转发给正常工作的后端服务器,例如404、502、503、Max_ fails的默认值是1; 企业场景下建议 2-3次。根据业务需求去配置 |
fail_ timeout=10s |
在max_ fails定义的失败次数后,距离下次检查的间隔时间,默认是10s ;如果max_ fails是5 ,它就检测5次,如果5次都是502 ,那么,它就会根据fail_timeout的值,等待10s再去检查,还是只检查一次,如果持续502 ,在不重新加载 Nginx 配置的情况下,每隔 l0s都只检查一次。常规业务2~3秒比较合理,比如京东3 秒,蓝汛3秒,可根据业务需求去配置。 |
backup |
热备配置(RS芍点的高可用),当前面激活的 RS都失败后会自动后用热备RS这标志着这个服务器作为备份服务器,若主服务器全部宕机了,就会向它转发请求,注意:当负载调度算法为ip_hash时,后端服务器在负载均衡调度中的状态不能是weight和backup |
down |
这标志着服务器永远不可用,这个参数可配合 ip_hash使用;类似注释效果 |
参数在配置文件中的格式
upstream server_pools {
server 10.0.0.7 weight= max_fails= fail_timeout=10s;
server 10.0.0.8 weight= max_fails= fail_timeout=10s;
server 10.0.0.9 weight= max_fails= fail_timeout=10s;
}
最新文章
- andriod刷机
- Linux下常用的硬件信息查看命令
- Direct2D开发:纹理混合
- ArcGIS中的坐标系定义与转换 (转载)
- php 导出csv文件
- easy ui 下拉级联效果 ,下拉框绑定数据select控件
- des加密解密源码 C# key值问题
- Microsoft Anti-Cross Site Scripting Library V4.2 下载地址
- CM源码同步编译教程
- 小话python 中的编码转换
- [ios]iphone 获取UIWebView内Html方法
- Cheat Engine 6.8 设置中文
- 『Island 基环树直径』
- Nginx(二)-服务模式运行nginx之WINSW
- python之各种装饰器的使用
- St_geometry 初始用
- dos命令dir查找文件的用法及实例
- 重拾 BFC、IFC、GFC、FFC
- Python-Flask实现电影系统管理后台
- 767A Snacktower
热门文章
- web.xml报错:cvc-complex-type.2.4.a: Invalid content was found starting with element 'async-supported'. One of '{";http://java.sun.com/xml/ns/javaee";:init-param}' is expected.
- python操作RabbitMQ、Redis、Memcache、SQLAlchemy
- cp命令覆盖不提示
- 【BZOJ 2679】[Usaco2012 Open]Balanced Cow Subsets(折半搜索+双指针)
- 神奇的Form表单
- Jupyter Notebook 使用入门
- rabbitmq消息消费者
- 【转】org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be res
- 114th LeetCode Weekly Contest Array of Doubled Pairs
- POJ - 1948 二维01背包