博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NGINX 负载均衡 之九
阅读量:6552 次
发布时间:2019-06-24

本文共 3589 字,大约阅读时间需要 11 分钟。

1、Nginx 负载均衡的组件模块

ngx_http_proxy_module:proxy代理模块,用于把请求后抛给服务器节点或upstream服务器池。

ngx_http_upstream_module:负载均衡模块,可以实现网站的负载均衡功能及节点的健康检查。

2、upstream模块语法

upstream server_pools {    #ip_hash;    server 10.3.151.34:81 weight=1;    server 10.3.151.246:81 weight=1;    }

3、upstream模块标签说明

upstream:是关键字必须要有。

server_pools:为一个upstream集群组的名字,可以自己定义,调用时使用。
server:关键字必须要有,后面可以接域名或IP,如果不指定端口,默认是80端口。
weight:代表服务器权重,默认值是1,权重数字越大表示接受的请求比例越大。
ip_hash:根据客户端IP的hash结果分配,解决动态网页的session共享问题,当负载调度算法为ip_hash时,后端服务器在负载均衡调度中不能使用weight和backup。

4、http proxy 模块相关参数

proxy:设置http请求header 项传给后端服务器节点,例如:可实现让代理后端的服务器节点获取到访问客户端用户的真实IP地址。

client_body_buffer_size:用于指定客户端请求主体缓冲区大小,此处如了解前文的http请求包的原理就好理解了。
proxy_connection_timeout:表示反向代理与后端节点服务器连接的超时时间,即发起握手等候响应的超时时间。
proxy_send_timeout:表示代理后端服务器的数据回传时间,即在规定时间之内后端服务器必须传完所有的数据,否则,nginx将断开这个连接。
proxy_read_timeout:设置nginx从代理的后端服务器获取信息时间,表示连接建立成功后,nginx等待后端服务器的响应时间,其实是nginx已经进入后端的排队之中等候处理的时间。
proxy_buffer_size:设置缓冲区大小,默认该缓冲区大小等于指令proxy_buffers设置的大小。

5、负载均衡实战

5.1、网络架构

web1:10.3.151.34 (安装:nginx,端口监听:80,Server name:www.kang.com)

web2:10.3.151.246 (安装:nginx,端口监听:80,Server name:www.kang.com)
客户端:10.3.151.86

5.2、web1 nginx 配置文件如下:

worker_processes  1;events {    worker_connections  1024;}error_log  logs/error.log;http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '                      '$status $body_bytes_sent "$http_referer" '                      '"$http_user_agent" "$http_x_forwarded_for"';    access_log  logs/access.log  main;    upstream server_pools {                             #负载均衡服务器        server 10.3.151.34:81 weight=1;        server 10.3.151.246:81 weight=1;        }server {        listen       80;        server_name  www.kang.com;        location / {            proxy_pass http://server_pools;                 #proxy_pass 转发        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }    server {        listen       81;        server_name  www.kang.com;        location / {            root   html;            index  index.html index.htm;       #index.html 内容为:10.3.151.34 WWW SERVER        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }    #include vhost/*.conf;}

5.3、web2 nginx 配置文件如下:

worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  application/octet-stream;    sendfile        on;    keepalive_timeout  65;    upstream server_pools {                            #负载均衡服务器        server 10.3.151.34 weight=1;        server 10.3.151.246:81 weight=1;        }    server {        listen       80;        server_name  www.kang.com;        location / {            proxy_pass http://server_pools;        #proxy_pass转发        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }    server {        listen       81;        server_name  www.kang.com;        location / {            root   html;            index  index.html index.htm;              #index.html内容:10.3.151.246 WWW SERVER        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}

5.4、通过客户端检查是否生效

[root@Auto-Operation ~]# for n in `seq 100`; do curl www.kang.com; sleep 1 ;done        #分别轮询访问两台服务器10.3.151.34 WWW SERVER10.3.151.246  WWW SERVER10.3.151.34 WWW SERVER

转载于:https://blog.51cto.com/12965094/2145979

你可能感兴趣的文章
类的多态性
查看>>
hadoop stop-dfs.sh 无法停止 namenode datanode
查看>>
学习邹欣著的《构建之法,现代软件工程》 ,所得疑问。
查看>>
MapReduce的编程思想(1)
查看>>
使用批处理文件设置环境变量
查看>>
自己动手写一个简单的Windows shell扩展程序
查看>>
NoCache
查看>>
算法与数据结构学习
查看>>
springboot应用无故停止运行killed解决方法
查看>>
在自己的应用中启动另外一个应用,随便说一下,发现一个秘密,就是当应用没退出的时候,启动就会变成关闭!!!...
查看>>
NetAdvantage 笔记
查看>>
Apache Maven 入门
查看>>
[转] B树、B-树、B+树、B*树 知识详解
查看>>
int.NSInteger.NSUInteger.NSNumber的区别
查看>>
使用JS与CSS3的翻转实现3D翻牌效果
查看>>
上海期货交易所CTP行情和交易接入
查看>>
Django models 操作高级补充
查看>>
springClould 的一些组件
查看>>
验证码
查看>>
Spring扩展:Spring框架的由来
查看>>