NGINX官方Docker镜像需要修改哪些内容才能安装set-misc-nginx模块?
2019-8-31 15:57:22
收藏:0
阅读:125
评论:1
如何在官方NGINX Dockerfile中安装set-misc-nginx?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

你可以扩展官方的nginx来构建动态模块,然后在
nginx中加载它们:# syntax=docker/dockerfile:experimental ARG NGINX_VERSION FROM nginx:${NGINX_VERSION} as build RUN apt-get update && \ apt-get install -y \ openssh-client \ git \ wget \ libxml2 \ libxslt1-dev \ libpcre3 \ libpcre3-dev \ zlib1g \ zlib1g-dev \ openssl \ libssl-dev \ libtool \ automake \ gcc \ g++ \ make && \ rm -rf /var/cache/apt RUN wget "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" && \ tar -C /usr/src -xzvf nginx-${NGINX_VERSION}.tar.gz RUN mkdir -p -m 0600 ~/.ssh && \ ssh-keyscan github.com >> ~/.ssh/known_hosts WORKDIR /src/ngx_devel_kit RUN --mount=type=ssh git clone git@github.com:simpl/ngx_devel_kit . WORKDIR /src/set-misc-nginx-module RUN --mount=type=ssh git clone git@github.com:openresty/set-misc-nginx-module.git . WORKDIR /usr/src/nginx-${NGINX_VERSION} RUN NGINX_ARGS=$(nginx -V 2>&1 | sed -n -e 's/^.*arguments: //p') \ ./configure --with-compat --with-http_ssl_module --add-dynamic-module=/src/ngx_devel_kit --add-dynamic-module=/src/set-misc-nginx-module ${NGINX_ARGS} && \ make modules FROM nginx:${NGINX_VERSION} COPY nginx.conf /etc/nginx/nginx.conf COPY --from=build /usr/src/nginx-${NGINX_VERSION}/objs/ngx_http_set_misc_module.so /usr/src/nginx-${NGINX_VERSION}/objs/ndk_http_module.so /usr/lib/nginx/modules/注意:这个例子是一个multi-staged build,它使用
docker的build enhancements来克隆仓库(根据你的docker的版本你可能需要启用实验性功能)。你可以在复制到最终镜像的
nginx.conf中加载模块:user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; load_module /usr/lib/nginx/modules/ndk_http_module.so; load_module /usr/lib/nginx/modules/ngx_http_set_misc_module.so; events { worker_connections 1024; } http { ... }构建镜像:
DOCKER_BUILDKIT=1 docker build --rm --ssh=default --build-arg NGINX_VERSION=1.17.3 --network host -t so:57739560 .运行容器:
docker run --rm -it -p 80:80 so:57739560另一个构建使用官方
nginx镜像的动态模块的例子,你可以看看我 nginx-modsecurity repo (nginx镜像扩展了 Modsecurity 和 Modsecurity-nginx)。