使用Dockerfile创建包含nginx-fair和nginx-check模块的nginx镜像

今天想弄清一下Nginx的负载均衡配置策略,于是,搜索了Google,有几种方法,比如轮询,权重weight啦,还有根据ip进行hash的方式,听说这个策略来保证session的一致性的,到底是不是呢,需要查清楚。

看着看着,看到一个fair策略配置,按后端服务器的响应时间来分配请求,响应时间短的优先分配。哇,这么优秀,那么这么看负载高的,响应太慢的,暂时不分配请求过去。

But,旁边写着个大大的“第三方”,这是啥意思,一脸懵逼。先不管那么多,在docker compose搭建起来的Nginx配置文件里面修改upstream,果断写上大大的“fair;"。然而一运行,我的Nginx的启动不了了,报了个大大的错误fair加载错误。what???

谷歌,竟然是一个Nginx模块fair。这就犯难了,这不坑爹吗,好好的玩着,突然来这么一下,谁受得了。怎么办,需要我重新编译Nginx把fair加入进去吗??光是编译就那么久,太难了。。。

这时候,我想到了pronxxx,不是,是docker hub,我docker search了一通,暂时没看见有人搞这个镜像,咋回事,真让人无语。

所幸,我的dockerfile写的还行(自信满满)。要不我来试试,内容如下:

FROM centos:7

MAINTAINER linlong zmllinlong@gmail.com

RUN yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel zip unzip zlib-devel lrzsz tree ntpdate telnet lsof tcpdump wget libevent libevent-devel glibc glibc-devel

COPY nginx-1.22.0 /usr/local/src/nginx-1.22.0/

COPY nginx-upstream-fair-master /tmp/nginx_fair/
COPY nginx_upstream_check_module-master /tmp/nginx_check/

RUN cd /usr/local/src/nginx-1.22.0 && ./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/nginx.conf --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module --add-module=/tmp/nginx_fair --add-module=/tmp/nginx_check \
   && make && make install

RUN useradd -r -s /sbin/nologin nginx

RUN ln -s /usr/local/nginx/sbin/nginx /usr/sbin/nginx

EXPOSE 80 443

CMD ["nginx","-g","daemon off;"]

中间历经千辛万苦,删了几次中途出错的镜像,more again,再次构建,卧槽,成功了。

现在已经上传到hub上了,地址:linlong/nginx-fair,对了,search就行了。

要问dockerfile里的nginx_upstream_check_module-master和ginx-upstream-fair-master是什么鬼,原来是这两个模块的解压目录。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值