使用Nginx -HAproxy实现七层负载均衡

使用Nginx实现动静分离的负载均衡集群

LB负载均衡集群分两类:LVS(四层)Nginx或HAproxy(七层)

客户端通过访问分发器的VIP来访问网站。

现在应用更复杂,比如现在网站页面有:php html png jpeg jsp等,有动态页面有静态页面。静态页面是不变的,想访问的更快些,要学习SQUID。

但是前面的LVS是四层的,基于IP的。现在需要在应用层基于不同的应用进行分发。

七层LB ,Nginx/ Haproxy都可以支持7层LB。

现在实现nginx动静分离,拓扑图。

常用解决方案:

静态文件处理:可以使用Nginx或Apache
动态文件处理:可以使用Apache,Tomcat
图片文件处理:可以使用Squid

使用Nginx实现动静分离的负载均衡集群:

1.Nginx负载均衡基础知识
Nginx 的 upstrema 负载的5种方式,目前最常用前3种方式

1)轮询(默认)
每个请求按时间顺序注意分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2)weight
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3)ip_hash
每个请求按访问IP的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4)fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5)url_hash(第三方)url哈希
按访问url的hash结果来分配请求,使同样的url定向到同一个后端服务器,后端服务器为缓存时比较有效。

实例1:使用Nginx实现负载均衡和动静分离。

源码编译安装Nginx:
1.安装nginx时必须先安装相应的编译工具和相关依赖
[root@centos60 ~]# yum -y install gcc gcc-c++ autoconf automake
[root@centos60 ~]# yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel
[root@centos60 ~]# wget http://nginx.org/download/nginx-1.14.1.tar.gz
[root@centos60 ~]# tar xf nginx-1.14.1.tar.gz -C /usr/local/src
[root@centos60 ~]# cd /usr/local/src/nginx-1.14.1/
[root@centos60 nginx-1.14.1]# ./configure --prefix=/usr/local/nginx --with-http_dav_module --with-http_stub_status_module --with-http_addition_module --with-http_sub_module --with-http_flv_module --with-http_mp4_module

--prefix=/usr/local/nginx 指定安装路径
--user=nginx --group=nginx 指定运行 nginx 进程的用户和组
--with-http_ssl_module 支持 ssl 加密
--with-http_realip_module 此模块支持显示真实来源 IP 地址,当 NGINX 做负载均衡服务器时,需要这个功能,这样能够使得后台服务器记录原始客户端的 IP 地址。
--with-http_gzip_static_module 开启 nginx 支持 gunzip 压缩静态文件功能,静态文件压缩后,可以节约带宽
--with-http_dav_module #启用支持 WebDAV 功能。WebDAV 一种基于 HTTP 1.1协议的通信协议。它扩展了 HTTP 1.1,在 GET、POST、HEAD 等几个 HTTP 标准方法以外添加了一些新的方法,使应用程序可直接对 Web Server 直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。
--with-http_stub_status_module #启用支持 nginx 监控模块,后期通过调用此模块可以监控nginx 状态。zabbix 也可以通过此模块,来监控 nginx 的性能状态
--with-http_addition_module #启用支持(开启此模块后,nginx 可以在响应 http 请求之前或者之后追加文本内容,比如想在站点底部追加一个 js 或者 css,可以使用这个模块来实现。)。
--with-http_sub_module #启用支持(此模块为 nginx 替换响应内容的模块,比如当站点出现什么敏感字,需要批量修改所有 web 页面,且想修改很耗时间,可以使用这个模块进行替换。或者想临时在站点中加上一个通用 js 或者 css 之类的文件,也可以使用这个模块。)
--with-http_flv_module #启用支持(支持 HTTP-FLV 方式直播视频)。
--with-http_mp4_module #启用支持(此模块允许 nginx 为 H.264/AAC 编译码的视频文件,如: .mp4、.m4v、和.m4a 扩展名的文件, 提供伪流媒体服务端支持。伪流媒体是与 Flash 播放器一起配合使用的。 播放器向服务端发送 HTTP 请求,请求中的查询串是以开始时间为参数的,而服务端以流响应,这样流的开始 位置就能于请求中的时间相对应。)
--with-pcre #启用 perl 正则表达式,perl 的正则表达式一般使用在 location 指令和ngx_http_rewrite_module url 重定向模块中。默认 ngx_http_rewrite_module 是就启用的。

查看参数
[root@centos60 nginx-1.14.1]# ./configure --help|grep mp4

编译和安装:(查看CPU逻辑数 cat /proc/cpuinfo | grep processor | wc -l)
[root@centos60 nginx-1.14.1]# make -j 4
[root@centos60 nginx-1.14.1]# make install

生成运行nginx的用户:
[root@centos60 nginx-1.14.1]# useradd -u 8000 -s /sbin/nologin nginx
[root@centos60 nginx-1.14.1]# id nginx
uid=8000(nginx) gid=8000(nginx) 组=8000(nginx)

nginx目录结构:
[root@centos60 nginx-1.14.1]# ls /usr/local/nginx/
conf  html  logs  sbin
conf 配置文件
html 网站根目录
logs 日志文件
sbin nginx启动脚本

主配置文件:
[root@centos60 nginx-1.14.1]# ls /usr/local/nginx/conf/nginx.conf
/usr/local/nginx/conf/nginx.conf

启动Nginx:
[root@centos60 sbin]# ln -s /usr/local/nginx/sbin/nginx /usr/sbin/
[root@centos60 nginx-1.14.1]# nginx
[root@centos60 nginx-1.14.1]# netstat -anput|grep :80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      9405/nginx: master

开机启动:
[root@centos60 nginx-1.14.1]# echo '/usr/local/nginx/sbin/nginx &' >> /etc/rc.local

测试配置文件语法是否有错误:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值