几种常用的负载均衡调度算法
主要配置
main(全局配置)
events(Nginx 工作模式)
http(HTTP 设置)
server(主机设置)
location(URL 匹配)
upstream(负载均衡设置)
http模块
Log_format
日志文件格式定义,在默认提供的几种文件格式之外指定设置一种正常记录访问连接的日志格式,也是最常用的日志格式
Access_log
设置正常访问连接的日志存储,使用上面定义的
sever模块
listen 听的端口,默认是 80 端口
server_name 监听的所有的请求,无论是外网请求还是内网请求还是内网请求
location 请求的资源定位
proxy_set_header允许重新定义或者添加发往后端服务器的请求头
location模块
location匹配命令
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
~ 开头表示区分大小写的正则匹配
~* 开头表示不区分大小写的正则匹配
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
= 进行普通字符精确匹配
location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配里带有“~”和“~*”的指令,如果找到相应的匹配,则nginx停止搜索其他匹配。
当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的指令会被使用。
upstream模块
几种常用的负载均衡调度算法
RR 轮询调度算法
ip hash
fair
比上面两个更智能的负载均衡调度算法。这种算法可以根据页面大小和加载时间的长短来智能的进行负载均衡,也就是根据不同的后端服务器对不同的访问请求的响应时间来分配,以确保每一个访问都是使用最短的加载时间的服务器。
Nginx 本身是不支持这种调度算法,需要加载 Nginx 的 第三方的upstream_fair模块 来使用这种调度算法。
重新编译Nginx 在./configure 命令后面添加—add-module=/abosutely/path/upstream_fair_module指令