Nginx 负载均衡
Posted 项思凯
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx 负载均衡相关的知识,希望对你有一定的参考价值。
nginx 负载均衡
说明
- Nginx 基于OSI七层(应用层)
- 使用Nginx 反向代理 实现负载均衡
-
Nginx负载均衡 如果某台server down机 Nginx不会去访问,自动跳转到正常的机器上去。
实验环境
- 三台主机:Linux Centos 6.4 32位
- 调度器Director:192.168.1.160(公网IP)、192.168.1.100(VIP)
- HTTP真实服务器Real server1:192.168.1.115(公网IP)
- HTTP真实服务器Real server2:192.168.1.111(公网IP)
- Director端需要安装Nginx:
- Nginx安装:http://www.cnblogs.com/xiangsikai/p/8118439.html
实验操作
注:代理 upsteam 名称不要用下划线"_"
1、配置Nginx主配置文件、http{}内加入
vim /usr/local/nginx/conf/nginx.conf
http{ # upstream反向代理 xsk 自定义名字 upstream xsk{ # server代理的IP:端口 可加入多个 端口默认为80 # weight权重值 权重范围 0 ~ 100 server 192.168.1.111 weight=2; server 192.168.1.115 weight=1; } server { # 代理端监听端口 listen 80; # 代理端访问的域名 server_name www.dir.com; location / { # 指定http://name/ 要与upstream name 对应一致 proxy_pass http://xsk/; proxy_set_header Host $host; proxy_set_header X-real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}}
2、检测配置文件
命令:/usr/local/nginx/sbin/nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
3、重启Nginx服务
/etc/init.d/nginx restart
4、测试Nginx负载均衡
[root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 2 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 2
测试 其中一个web故障,就不访问 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1 [root@nginx conf]# curl -xlocalhost:80 www.dir.com LVS 1
负载均衡模式
< 轮询分发请求 > = 平均分发连接请求 -------------------------------- upstream xyo{ server x.x.x.x ; server x.x.x.x ; } -------------------------------- < 加权轮询请求 > = 加入权重指定分发数 -------------------------------- upstream xyo{ server x.x.x.x weight=1; server x.x.x.x weight=2; } -------------------------------- < 最少连接请求 > = 请求自动分发处理连接少的端 -------------------------------- upstream xyo{ least_conn; server x.x.x.x; server x.x.x.x; } -------------------------------- < 哈希绑定连接请求 > = 请求通过hash绑定到访问客户端 -------------------------------- upstream xyo{ ip_hash; server x.x.x.x; server x.x.x.x; } --------------------------------
负载均衡模块参数
模板 upstream xyo{ server x.x.x.x 参数; server x.x.x.x 参数; } <max_fails> = 指定Server允许请求失败次数,默认为1,设置为0将永久无效状态。 <fail_timeout> = 指定server请求失败后,再fail_timeout时间内,心情求不会分配给这台机器。 <max_conns> = 指定server接收的最大请求数, <backup> = 备份机,所有服务挂掉后生效。 <down> = 标识某一台server不可用。 ------------------------------------------------- upstream xyo{ server 192.168.1.166 max_fails=1 fail_timeout=10; server 192.168.1.109 max_fails=1 fail_timeout=10; server 192.168.1.103 max_conns=1000; server 192.168.1.102 backup; server 192.168.1.103 down; } ------------------------------------------------- <resolver> = 指定DNS域名解析服务器地址 <resolve> = 选择指定resolver域名地址解析 ------------------------------------------------- http { resolver 8.8.8.8 upstream xyo{ server www.zkjiashijie.com resolve; server admin.zkjiashijie.comresolve; } } -------------------------------------------------
以上是关于Nginx 负载均衡的主要内容,如果未能解决你的问题,请参考以下文章
nginx反向代理访问很慢,我做了负载均衡,现在几乎无法访问,有谁能帮我解决一下,万分感谢。