版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、应用集群配置应用集群配置一、一、 负载均衡名词解释负载均衡负载均衡(又称为负载分担),英文名称为Load Balance,其意思就是将负载(工作任务)进行平衡、分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务四层和七层负载均衡四层和七层负载均衡负载均衡设备也常被称为负载均衡设备也常被称为四到七层交换机四到七层交换机所谓四层就是基于所谓四层就是基于IP+端口的负载均衡;端口的负载均衡;四层的负载均衡,就是通过发布三层的四层的负载均衡,就是通过发布三层的IP地址(地址(VIP),然后加四),然后加四层的端口号,来决定哪些流
2、量需要做负载均衡,对需要处理的流量层的端口号,来决定哪些流量需要做负载均衡,对需要处理的流量进行进行NAT处理,转发至后台服务器,并记录下这个处理,转发至后台服务器,并记录下这个TCP或者或者UDP的的流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发流量是由哪台服务器处理的,后续这个连接的所有流量都同样转发到同一台服务器处理。到同一台服务器处理。七层就是基于七层就是基于URL等应用层信息的负载均衡;等应用层信息的负载均衡;七层的负载均衡,就是在四层的基础上,再考虑应用层的特征,比七层的负载均衡,就是在四层的基础上,再考虑应用层的特征,比如同一个如同一个WEB服务器的负载均衡,除了根据
3、服务器的负载均衡,除了根据VIP加加80端口辨别是否端口辨别是否需要处理的流量,还可根据七层的需要处理的流量,还可根据七层的URL、浏览器类别、语言来决定、浏览器类别、语言来决定是否要进行负载均衡。是否要进行负载均衡。l 负载均衡策略l 负载均衡算法负载均衡策略l 基于DNS的负载均衡。 l 基于反向代理的负载均衡。 l 基于特定服务器软件的负载均衡。 l 基于NAT的负载均衡。 l 基于CDN的负载均衡。 基于DNS的负载均衡 实现原理: 一个域名绑定多个IP,通过DNS服务中的随机域名解析来实现 。基于DNS的负载均衡 优点: 实现简单、实施容易、成本低、适用于大多数TCP/IP应用 。基
4、于DNS的负载均衡 问题: 一旦某个服务器出现故障,即使修改了DNS设置,还是要等待足够的时间(刷新时间)才能发挥作用,在此期间保存了故障服务器地址的客户计算机将不能正常访问服务器。 缺陷: DNS负载均衡无法得知服务器之间的差异,它不能做到为性能较好的服务器多分配请求,也不能了解到服务器的当前状态,甚至会出现客户请求集中在某一台服务器上的偶然情况。 基于反向代理的负载均衡 实现原理: 通过正则映射将请求重定向到内容服务器。基于反向代理的负载均衡 优点: 自带高速缓冲,可减轻内容服务器压力,提速网络访问效率 。基于反向代理的负载均衡 问题: 针对每一次代理,代理服务器就必须打开两个连接,一个对
5、外,一个对内,因此在并发连接请求数量非常大的时候,代理服务器的负载也就非常大了,在最后代理服务器本身可能会成为服务的瓶颈。 缺陷: 反向代理是处于OSI参考模型第七层应用的,所以就必须为每一种应用服务专门开发一个反向代理服务器,这样就限制了反向代理负载均衡技术的应用范围,现在一般都用于对web服务器的负载均衡。基于特定服务器软件的负载均衡 实现原理: 利用网络协议的重定向功能来实现 。基于特定服务器软件的负载均衡 优点: 服务可定制,可依据底层服务器的性能及实况进行负载调控。基于特定服务器软件的负载均衡 问题: 需要改动软件,成本较高。基于NAT的负载均衡 实现原理: 将一个外部IP地址映射为
6、多个内部IP地址。基于NAT的负载均衡 优点: 比较完善的负载均衡技术,均衡算法也较灵活,如随机选择、最少连接数及响应时间等来分配负载。 基于NAT的负载均衡 问题: 伸缩能力有限,当服务器结点数目过多时,调度器本身有可能成为系统的新瓶颈 。基于CDN的负载均衡 实现原理: 通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容 。基于CDN的负载均衡 优点: 用户访问就近服务器,提高访问速度。负载均衡算法l 轮询算法。 l Hash散列算法。 l 最少链接算法。 l 最快链接算法。 l 加权算法。 l 动态反馈算法。 轮询
7、算法 实现原理: 每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。轮询算法 优点: 简洁,无状态调度 。 缺点: 轮询调度算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询调度算法容易导致服务器间的负载不平衡。 轮询算法 适用: 服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。 Hash散列算法l MD5。 l 一致性Hash算法。 l 各种经典Hash算法。 l 自定义Hash算法。 最少链接算法 实现原理: 将请求分配至当前链接数最少的服务器。二、二
8、、 web服务器的负载均衡web服务器负载均衡的两个问题服务器负载均衡的两个问题会话的同步会话的同步应用的同步应用的同步会话的同步会话的同步会话的同步会话的同步无需会话的同步的伪集群无需会话的同步的伪集群 该种方式下,当用户发出第一个该种方式下,当用户发出第一个request后,负载均衡器后,负载均衡器动态的把该用户分配到某个节点,并记录该节点的动态的把该用户分配到某个节点,并记录该节点的jvm路由,以后该用户的所有路由,以后该用户的所有request都会被绑定这个都会被绑定这个jvm路路由,用户只会与该由,用户只会与该server发生交互,这种策略被称为粘发生交互,这种策略被称为粘性性ses
9、sion(session sticky)。 该方法的优点是响应速度快,多个节点之间无须通信。该方法的优点是响应速度快,多个节点之间无须通信。缺点也很明显,某个缺点也很明显,某个node死掉以后,它负责的所有用户死掉以后,它负责的所有用户都会丢失都会丢失session应用同步应用同步采用共享文件系统采用共享文件系统 NFS、SSHFSSSHFS安装配置安装配置安装安装:#如果是如果是ubuntu apt-get install sshfs#如果是如果是Redhat yum install fuse-sshfsSSHFS命令选项命令选项SSHFS options: -p PORT equivale
10、nt to -o port=PORT -C equivalent to -o compression=yes #启用压缩启用压缩,建议配上建议配上 -F ssh_configfile specifies alternative ssh configuration file #使用非默认的使用非默认的ssh配置文件配置文件 -1 equivalent to -o ssh_protocol=1 #不要用啊不要用啊 -o reconnect reconnect to server #自动重连自动重连 -o delay_connect delay connection to server -o ssh
11、fs_sync synchronous writes -o no_readahead synchronous reads (no speculative readahead) #提前预读提前预读 -o sshfs_debug print some debugging information -o cache=BOOL enable caching yes,no (default: yes) #能缓存目录结构之类的信息能缓存目录结构之类的信息 -o cache_timeout=N sets timeout for caches in seconds (default: 20) -o cache_
12、X_timeout=N sets timeout for stat,dir,link cacheSSHFS命令选项命令选项 -o workaround=LIST colon separated list of workarounds none no workarounds enabled all all workarounds enabled norename fix renaming to existing file (default: off) nonodelaysrv set nodelay tcp flag in sshd (default: off) notruncate fix t
13、runcate for old servers (default: off) nobuflimit fix buffer fillup bug in server (default: on) -o idmap=TYPE user/group ID mapping, possible types are: #文件权限文件权限uid/gid映射关系映射关系 none no translation of the ID space (default) user only translate UID of connecting userSSHFS命令选项命令选项-o ssh_command=CMD ex
14、ecute CMD instead of ssh -o ssh_protocol=N ssh protocol to use (default: 2) #肯定要肯定要2的的 -o sftp_server=SERV path to sftp server or subsystem (default: sftp) -o directport=PORT directly connect to PORT bypassing ssh -o transform_symlinks transform absolute symlinks to relative -o follow_symlinks follo
15、w symlinks on the server -o no_check_root dont check for existence of dir on server -o password_stdin read password from stdin (only for pam_mount) -o SSHOPT=VAL ssh options (see man ssh_config)编辑编辑SSHFS启动脚本启动脚本/etc/init.d/sshfs#!/bin/bashcase $1 instart)echo KWemis2010 |sshfs -o transform_symlinks
16、-o follow_symlinks root0:/usr/local/projz_zs /usr/local/project -o password_stdin -o nonempty;stop)umount /usr/local/project;restart)$0 stop/bin/sleep 10$0 start;*)echo Usage: sshfs start|stop|restartexit 1esac三、三、 NGINX配置Nginx的主配置文件 Nginx的主配置文件为nginx.conf.此文件在nginx的安装目录下.如果你的nginx的安装目录是/
17、usr/local/nginx,那么nginx.conf就在/usr/local/nginx/下nginx.conf文件结构文件结构events.http. server . .#user nobody;#指定使用的用户指定使用的用户worker_processes 1;开启的进程数,一般设置开启的进程数,一般设置1-5#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;定义错误日志,以及记录的日志等级定义错误日志,以及记录的日志等级#pid logs/nginx.p
18、id;定义定义pid文件位置文件位置Nginx的主配置文件nginx.conf文件结构文件结构events.http. server . .Nginx的主配置文件events use ; #Nginx支持如下处理连接的方法支持如下处理连接的方法(I/O复用方法),这些方法可以通过复用方法),这些方法可以通过use指令指定指令指定# use kqueue | rtsig | epoll | select | poll ; #每个进程最大连接数(最大连接每个进程最大连接数(最大连接=连接数连接数x进程数)进程数) #worker_connections 51200; nginx.conf文件结构文
19、件结构events.http. server . .nginx.conf文件结构文件结构events.http. server . .Nginx压缩输出配置 Nginx使用gzip压缩技术,这种技术可以压缩文件至原来的30%甚至更小。IE、FireFox、Opera、Chrome等大多浏览器都支持解析gzip过的页面.Gzip指令用于http之间如下http gzip on; gzip_min_length 1k; gzip_buffer 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain applica
20、tion/x-javascript text/css application/xml; gzip_vary on;#accpet_encoding gzipNginx的虚拟主机配置虚拟主机把一台运行在因特网上的服务器主机划分成多“虚拟”的主机。每个虚拟主机都具有独立的域名和Internet服务器(WWW,FTP,EMAIL)功能。利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程。虚拟主机提供了在同一台服务器上、同一组Nginx进程上运行多个网站的功能。每段server就是一个虚拟主机,如果要配置多个虚拟主机,只需配置多个server段即可。http
21、 server listen 80 default; server_name _*; access_log logs/access.log default; location / index index.html index.htm; root /data0/htdocs/htdocs/; #location #server#httpnginx.conf如何配置虚拟主机配置虚拟主机的分类 基于配置IP的虚拟主机 基于配置域名的虚拟主机http #第一台虚拟主机 server#监听的IP和端口 listen 3 80; #主机名称 server_name 192.168.8
22、.43;#访问日志存放路径 access_log logs/access_log combined; location / #默认首页文件 index index.html index.htm; #html文件存放路径 root /data0/htdocs/server1; 注:listen可以不写IP只写端口,意思是监听本机的所有80端口基于配置IP的虚拟主机http #第一台虚拟主机 server #监听的端口 listen 80; #主机名 server_name ; #日志存放路径 access_log logs/sub_mygogo_com.log combined; locatio
23、n / #默认首页文件 index index.html index.html; #工程存放目录 root /data0/htdocs/; 基于配置域名的虚拟主机四、四、 NGINX 模块解析内核模块配置示例user nobody;worker_processes 4;#error_log /opt/nginx_logs/error.log;#error_log /opt/nginx_logs/error.log notice;#error_log /opt/nginx_logs/error.log info;pid logs/nginx.pid;worker_rlimit_nofile 65
24、535;内核模块设置工作的进程数(可设置为可用cpu的数量)。 语法:worker_processes number默认值: 1上下文: main指定错误日志的文件和错误级别。 语法:error_log file debug | info | notice | warn | error | crit 默认值: $prefix/logs/error.log上下文: http,server,location定义一个worker进程可以同时处理的文件数量。 语法:worker_rlimit_nofile limit默认值: OS默认上下文: main事件模块事件模块配置示例。events use e
25、poll; worker_connections 65535;指定事件响应模式。语法:use type默认值: 在编译时指定上下文: events设置每个worker进程所能处理的连接数。语法:worker_connections number默认值: 1024上下文: eventsHTTP内核模块配置范例http includemime.types;default_typeapplication/octet-stream;sendfileon;keepalive_timeout 65;gzipoff;upstream backup server:8010;server127
26、.0.0.1:8011;keepalive10;HTTP内核模块server listen:80;server_;if ($http_user_agent MSIE) rewrite (.*)$ /msie/$1 break;location / configurationAHTTP内核模块location /images/ if ($request_method = POST) proxy_pass http:/backup;configurationBlocation /purge(/.*) allow;denyall;HTTP内核模块为HTTP服务
27、器提供配置上下文。 语法:http . 默认值: 上下文: main开始设置虚拟主机。 语法:server . 默认值: 上下文: http为某个请求URI(路径)建立配置。语法:location = | | * | uri . location name . 默认值: 上下文: server, locationHTTP内核模块计算指定的condition的值。语法:if (condition) . 默认值: 上下文: server, location 停止处理当前这一轮的rewrite指令集。语法:break;默认值: 上下文: server, location, if停止处理并返回指定co
28、de给客户端。语法:return code text; return code URL; return URL;默认值: 上下文: server, location, ifHTTP内核模块匹配条件变量名;如果变量值为空或者是以“0”开始的字符串,则条件为假;使用“=”和“!=”运算符比较变量和字符串;使用“”(大小写敏感)和“*”(大小写不敏感)运算符匹配变量和正则表达式。正则表达式可以包含匹配组,匹配结果后续可以使用变量$1.$9引用。如果正则表达式中包含字符“”或者“;”,整个表达式应该被包含在单引号或双引号的引用中。使用“-f”和“!-f”运算符检查文件是否存在;使用“-d”和“!-d”
29、运算符检查目录是否存在;使用“-e”和“!-e”运算符检查文件、目录或符号链接是否存在;使用“-x”和“!-x”运算符检查可执行文件; 正则正则匹配.xlsxHTTP内核模块定义将要被作为默认页的文件。语法:index file .;默认值: index index.html; 上下文: http, server, location为请求设置根目录 。语法: root path;默认值: root html; 上下文: http, server, location, if in location 定义指定路径的替换路径。语法: alias path;默认值: 上下文: locationHTTP
30、内核模块设置虚拟主机名。语法:server_name name .;默认值: server_name ;上下文: server设置客户端的长连接在服务器端保持的最长时间。语法:keepalive_timeout timeout header_timeout;默认值: keepalive_timeout 75s;上下文: http, server, location 为指令错误定义显示的URI 。语法:error_page code . =response uri;默认值: 上下文: http, server, location, if in locationHTTP内核模块内嵌变量$arg_n
31、ame,请求行中的name参数。$args,请求行中参数字符串。$binary_remote_addr,客户端IP地址的二进制形式,长度总是4字节。$body_bytes_sent,nginx返回给客户端的字节数,不含响应头。$bytes_sent,nginx返回给客户端的字节数(1.3.8, 1.2.5)。$connection,连接的序列号(1.3.8, 1.2.5)。$content_length,“Content-Length”请求头的值。$content_type,“Content-Type”请求头的值。$cookie_name,名为name的cookie。$document_roo
32、t,当前请求的root指令或alias指令的配置值。$document_uri,与$uri相同。$host,“Host”请求头的值,如果没有该请求头,则为与请求对应的虚拟主机的首要主机名。HTTP内核模块$hostname,机器名称。$http_name,任意请求头的值;变量名的后半部为转化为小写并且用下划线替代横线后的请求头名称。$https,如果连接是SSL模块,返回“on”,否则返回空字符串。$is_args,如果请求行带有参数,返回“?”,否则返回空字符串。$limit_rate,允许设置此值来限制连接的传输速率。$msec,当前时间,单位是秒,精度是毫秒。(1.3.9, 1.2.6)
33、$nginx_version,nginx版本号。$pid,worker进程的PID。$query_string,与$args相同。$realpath_root,按root指令或alias指令算出的当前请求的绝对路径。其中的符号链接都会解析成真是文件路径。$remote_addr,客户端IP地址。$remote_port,客户端端口。$remote_user,为基本用户认证提供的用户名。HTTP内核模块$request,完整的原始请求行。$request_body,请求正文。在由proxy_pass指令和 fastcgi_pass指令处理的路径中, 这个变量值可用。$request_body_f
34、ile,请求正文的临时文件名。处理完成时,临时文件将被删除。 如果希望总是将请求正文写入文件,需要开启client_body_in_file_only。 如果在被代理的请求或FastCGI请求中传递临时文件名,就应该禁止传递请求正文本身。 使用proxy_pass_request_body off指令 和fastcgi_pass_request_body off指令 分别禁止在代理和FastCGI中传递请求正文。$request_completion,请求完成时返回“OK”,否则返回空字符串。$request_filename,基于root指令或alias指令,以及请求URI,得到的当前请求的
35、文件路径。$request_method,HTTP方法,通常为“GET”或者“POST”。$request_time,请求处理的时间,单位为秒,精度是毫秒(1.3.9, 1.2.6);请求处理时间从由客户端接收到第一个字节开始计算。$request_uri,完整的原始请求行(带参数)。HTTP内核模块$scheme,请求协议类型,为“http”或“https”。$sent_http_name,任意的响应头字段的值。 变量名的后半部为转化为小写并且用下划线替代横线后的响应头名称。$server_addr,接受请求的服务器地址。为计算这个值,通常需要进行一次系统调用。为了避免系统调用,必须指定li
36、sten指令 的地址,并且使用bind参数。$server_name,接受请求的虚拟主机的首要主机名。$server_port,接受请求的虚拟主机的端口。$server_protocol,请求协议,通常为“HTTP/1.0”或“HTTP/1.1”。$status,响应状态码。$tcpinfo_rtt, $tcpinfo_rttvar, $tcpinfo_snd_cwnd, $tcpinfo_rcv_space,客户端TCP连接的信息,在支持套接字选项TCP_INFO的系统中可用。$uri,当前请求规范化以后的URI。变量$uri的值可能随请求的处理过程而改变。 比如,当进行内部跳转时,或者使用
37、默认页文件。Log模块模块配置实例log_format main $remote_addr - $remote_user $time_local $request $status $bytes_sent $http_referer $http_user_agent $gzip_ratio;access_log /spool/logs/nginx-access.log main buffer=32k;为访问日志设置路径,格式和缓冲区大小。语法: access_log path format buffer=size; access_log off;默认值: access_log logs/acce
38、ss.log combined; 上下文: http, server, location, if in location, limit_except 指定日志的格式。语法: log_format name string .;默认值: log_format combined .; 上下文: httpProxy模块配置范例proxy_temp_path /date/nginx/proxy_temp 1 2;proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=ng_cache:400m inactive=1d max_size=60g;lo
39、cation / proxy_set_headerHost$host;proxy_set_headerConnection“”;proxy_http_version1.1;proxy_cache_valid302 5m;proxy_cache_valid200 20d; proxy_cache_key$scheme$host$request_uri;proxy_cache ng_cache;proxy_passhttp:/localhost:8000;重新定义或者添加发往后端服务器的请求头。语法: proxy_set_header field value;默认值: proxy_set_head
40、er Host $proxy_host;proxy_set_header Connection close; 上下文: http, server, location设置代理使用的HTTP协议版本。语法: proxy_http_version 1.0 | 1.1;默认值: proxy_http_version 1.0; 上下文: http, server, location设置后端服务器的协议和地址。语法: proxy_pass URL;默认值: 上下文: location, if in location, limit_exceptProxy模块设置缓存的路径和其他参数。语法:proxy_cac
41、he_path path levels=levels keys_zone=name:size inactive=time max_size=size loader_files=number loader_sleep=time loader_threshold=time;默认值: 上下文: http指定用于页面缓存的共享内存。语法: proxy_cache zone | off;默认值: proxy_cache off; 上下文: http, server, locationProxy模块为不同的响应状态码设置不同的缓存时间。语法:proxy_cache_valid code . time;默认
42、值: 上下文: http, server, location定义如何生成缓存的键。语法:proxy_cache_key string;默认值: proxy_cache_key $scheme$proxy_host$request_uri;上下文: http, server, location设置响应被缓存的最小请求次数。语法:proxy_cache_min_uses number;默认值: proxy_cache_min_uses 1;上下文: http, server, locationProxy模块Rewrite模块配置范例/多目录转成参数if ($host * (.*)/.domain/
43、.com) set $sub_name $1; rewrite /sort/(/d+)/?$ /index.php?act=sort&cid=$sub_name&id=$1 last; /目录对换rewrite /(/d+)/(.+)/ /$2?id=$1 last; /在用户使用ie的使用重定向到/nginx-ie目录下。if ($http_user_agent MSIE) rewrite (.*)$ /nginx-ie/$1 break; Rewrite模块如果指定的正则表达式能匹配URI,此URI将被replacement参数定义的字符串改写。rewrite指令按其在配置
44、文件中出现的顺序执行。语法:rewrite regex replacement flag;默认值: 上下文:server, location, if可选的flag参数可以是其中之一:last:停止执行当前这一轮的ngx_http_rewrite_module指令集,然后查找匹配改变后URI的新location;break:停止执行当前这一轮的ngx_http_rewrite_module指令集;redirect:在replacement字符串未以“http:/”或“https:/”开头时,使用返回状态码为302的临时重定向;permanent:返回状态码为301的永久重定向。Map模块配置范例
45、map $uri $new defaulthttp:/ $uri $myvalue /aa/mapped_aa;/aa/(?.*)$/mapped_bb/$suffix;Map模块变量设置的映射表。映射表由两列组成,匹配模式和对应的值。语法:map string $variable . 默认值: 上下文: http这个指令也支持三个特殊参数。default value:如果源变量值没有匹配到任何变量,则设置一个默认值作为结果。 当没有设置 default,将会用一个空的字符串作为默认的结果。hostnames:允许用前缀或者后缀掩码指定域名作为源变量值。include file:包含一个或者多
46、个存有映射值的文件。Upstream模块配置范例upstream backend server weight=5; server :8080 max_fails=3 fail_timeout=30s; server unix:/tmp/backend3; server :8080 backup; keepalive 16;定义一组服务器语法:upstream name . 默认值: 上下文: httpUpstream模块定义服务器的地址address和其他参数parameters。语法:server address parameters;默认值: 上下文: upstream可
47、定义参数:weight=number。设定服务器的权重,默认是1。max_fails=number。设定Nginx与服务器通信的尝试失败的次数。fail_timeout=time。设定统计失败尝试次数的时间段,默认是10秒。backup。标记为备用服务器。down。标记服务器永久不可用,可以跟ip_hash指令一起使用。激活对上游服务器的连接进行缓存。语法:keepalive connections;默认值: 上下文: upstream Access模块配置范例location / deny ;allow /24;allow /16;
48、allow 2001:0db8:/32;deny all;Access模块允许指定的网络地址访问语法:allow address | CIDR | all;默认值: 上下文: http, server, location, limit_except拒绝指定的网络地址访问语法:deny address | CIDR | all;默认值: 上下文: http, server, location, limit_exceptFastCGI模块配置范例upstream _fcgi server:9000 weight=8;server:9001 weight=8;lo
49、cation .*.php?$ #fastcgi_pass unix:/dev/shm/fcgi.sock;#fastcgi_pass :9000;fastcgi_pass _fcgi;include fastcgi.conf;fastcgi_buffer_size 128k;fastcgi_buffers 4 128k;fastcgi_connect_timeout 1800;FastCGI模块指定FastCGI服务器监听端口与地址。语法:fastcgi_pass fastcgi-server 默认值:none 上下文:http, server, location 指定一些
50、传递到FastCGI服务器的参数。语法:fastcgi_param parameter value默认值: 上下文:http, server, locationfastcgi.conf指定同FastCGI服务器的连接超时时间,这个值不能超过75秒。语法:fastcgi_connect_timeout time 默认值:fastcgi_connect_timeout 60 上下文:http, server, location 五、五、 NGINX负载均衡NGINX负载均衡负载均衡Nginx的负载均衡是一个基于内容和应用的七层交换负载均衡的实现的负载均衡是一个基于内容和应用的七层交换负载均衡的实现
51、优点:优点:1、高并发连接:官方测试能够支撑、高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到万并发连接,在实际生产环境中跑到23万并发连接数。万并发连接数。2、内存消耗少:在、内存消耗少:在3万并发连接下,开启的万并发连接下,开启的10个个Nginx 进程才消耗进程才消耗150M内内存(存(15M*10=150M)。)。3、配置文件非常简单:风格跟程序一样通俗易懂。、配置文件非常简单:风格跟程序一样通俗易懂。4、成本低廉:、成本低廉:Nginx为开源软件,可以免费使用。而购买为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至
52、几十万人民币。等硬件负载均衡交换机则需要十多万至几十万人民币。5、支持、支持Rewrite重写规则:能够根据域名、重写规则:能够根据域名、URL的不同,将的不同,将 HTTP 请求分请求分到不同的后端服务器群组。到不同的后端服务器群组。6、内置的健康检查功能:如果、内置的健康检查功能:如果 Nginx Proxy 后端的某台后端的某台 Web 服务器宕机服务器宕机了,不会影响前端访问。了,不会影响前端访问。7、节省带宽:支持、节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的压缩,可以添加浏览器本地缓存的 Header 头。头。8、稳定性高:用于反向代理,宕机的概率微乎其微。、稳定性高:
53、用于反向代理,宕机的概率微乎其微。9、支持热部署:不间断服务进行更新。、支持热部署:不间断服务进行更新。Nginx负载均衡 Nginx 负载均衡基础知识nginx的upstream目前支持4种方式的分配1)、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2)、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 3)、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 4)、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间
54、短的优先分配。Nginx负载均衡示例upstream backend#定义负载均衡设备的Ip及设备状态 server :9090 down; server 2:8080 weight=2 ; server 3:6060 max_fails=3 fail_timeout=30s; server 14:7070 backup;server location / proxy_pass http:/backend; Upstream可对后端服务器进行健康检查。a) down 表示当前的server暂时不参与负载b) weight 默认为1.weight越大,负载的权重就越大。c) max_fails :在fail_timeout时间内对后台服务器请求失败的次数 d) fail_timeout:max_fails次失败后,暂停的时间。e) backup: 其它所有的非bac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保密协议保密费保密费标准
- 二零二四年度不锈钢医疗设备安装承包合同
- 二零二四年度旅游度假服务合同
- 二零二四年度充电桩租赁服务合同
- 二零二四年度委托合同服务内容标的及具体要求说明
- 印尼劳务合同模板(2篇)
- 劳动协议书(2篇)
- 二零二四年度物业管理有限公司与保安公司保安劳务派遣服务合同
- 二零二四年度食品加工与供应合同
- 二零二四年度跨国技术转让合同标的为专利使用权
- 固体废弃物专项措施方案
- 2024年刑法知识考试题库含答案【满分必刷】
- 50万吨生物柴油建设项目可行性研究报告
- 【核心素养目标】统编版 选必1 第一单元 第1课 中国古代政治制度的形成与发展 教学设计
- 教师专业发展支持系统
- 八年级历史上册(部编版)第六单元中华民族的抗日战争(大单元教学设计)
- 《诗意的色彩》课件 2024-2025学年人美版(2024)初中美术七年级上册
- 非遗文化走进数字展厅+大数据与互联网系创业计划书
- 2022年7月贵州省高中学业水平考试语文试题(含答案解析)
- 2024年全国职业院校技能大赛高职组(动物疫病检疫检验赛项)考试题库(含答案)
- 社区普法法讲座
评论
0/150
提交评论