绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
负载均衡+Nginx 实践
2020-05-25 14:59:21

各大云厂商目前都有 PAAS 层的负载均衡服务。

目前比较出名的七层负载均衡,如阿里的 Tengine,百度刚刚开源的 BFE(Baidu Front End)。

阿里 Tenginegithub.com
百度 BFEgithub.com图标

阿里云目前已经全部上了 Tengine,目前百度这边还不清楚,后面应该也会上 BFE。

这篇文章带大家来进行一下七层负载均衡 + Nginx 的动手实践。

虚机安装 Nginx

购买虚机需要注意的点:

  • Region 和 可用区 的选择,这个一般选择了就不能更改了,慎重。
  • VPC 和 安全组 的配置。一些云厂商不支持更改 VPC,这个也要提前选择好。
  • 建议使用密钥登陆,密码登陆是容易被暴力破解的。

购买好之后,SSH 登陆虚机进行 Nginx 的安装。

环境:
CentOS 7.6
Nginx 1.13.7
  1. 安装相关依赖包
// 编译器gcc、数据压缩库zlib、编译依赖zlib-devel、安全依赖库openssl
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

2. 下载并解压安装包

// 进入local目录用户级的安装程序目录
cd /usr/local
// 下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxvf nginx-1.13.7.tar.gz

3. 安装 Nginx

//进入nginx解压目录
cd /usr/local/nginx-1.13.7

//执行命令 配置 makefile 文件到 --prefix 目录下
./configure --prefix=/usr/local/nginx 

//执行 make 命令,用来编译,它从Makefile中读取指令,然后编译
make
    
//执行make install命令,用来安装,它也从Makefile中读取指令,安装到指定的位置
make install

4. 配置 Nginx config 文件

vi /usr/local/nginx/conf/nginx.conf

配置监听8080,服务器地址为负载均衡的 EIP。

同时想看一下负载均衡对于 302 的转发情况,需要配置 redirect 目录

302 跳转到 upload 目录

5. 启动 Nginx

/usr/local/nginx/sbin/nginx -s reload

启动的时候有一个报错
Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid" failed(2:No such file or directory)

原因是因为找不到 pid 文件
使用 nginx -c的参数指定 nginx.conf 文件的位置即可解决
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

6. 查看进程


测试负载均衡

head 请求测试

GET 请求传输数据

由于七层负载均衡基于反向代理实现。Transfer-Encoding字段表示Web服务器如何对响应消息体编码,比如Transfer-Encoding: chunked表示Web服务器对响应消息体做了分块传输。

后端服务上进行抓包验证

// 监听8080端口,并且排查健康检查网段。 
// 七层ELB使用DR模式,后端服务器的请求IP是ELB的VIP

tcpdump -i eth0 -nnn -ttt 'tcp port 8080 && ! net 100.79.0.0/16'

分享好友

分享这个小栈给你的朋友们,一起进步吧。

唠唠叨叨负载均衡
创建时间:2020-05-25 14:12:28
唠唠叨叨负载均衡
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~