Docker 如何在Alpine linux上为nginx添加Lua模块?
我希望为nginx提供一个启用Lua模块的精益Docker映像。如何基于Alpine linux创建此功能?您可以查看Docker Hub 您会发现一个Nginx映像,它基于alpelinux,支持Lua 一些例子 或Docker 如何在Alpine linux上为nginx添加Lua模块?,docker,nginx,lua,alpine,Docker,Nginx,Lua,Alpine,我希望为nginx提供一个启用Lua模块的精益Docker映像。如何基于Alpine linux创建此功能?您可以查看Docker Hub 您会发现一个Nginx映像,它基于alpelinux,支持Lua 一些例子 或 查看Dockerfile了解更多详细信息这里有一个Dockerfile: FROM alpine:3.6 RUN apk add --no-cache nginx-mod-http-lua # Delete default config RUN rm -r /etc/n
查看Dockerfile了解更多详细信息这里有一个
Dockerfile
:
FROM alpine:3.6
RUN apk add --no-cache nginx-mod-http-lua
# Delete default config
RUN rm -r /etc/nginx/conf.d && rm /etc/nginx/nginx.conf
# Create folder for PID file
RUN mkdir -p /run/nginx
# Add our nginx conf
COPY ./nginx.conf /etc/nginx/nginx.conf
CMD ["nginx"]
安装nginx mod http lua
软件包还将安装nginx
和luajit
等
nginx.conf
应至少包含以下内容:
load_module /usr/lib/nginx/modules/ndk_http_module.so;
load_module /usr/lib/nginx/modules/ngx_http_lua_module.so;
pcre_jit on;
events {
worker_connections 1024;
}
daemon off;
我们使用Openresty,这是一个集成nginx和Lua的平台 在默认的nginx文件中,您可以这样调用Lua:
server {
listen 80;
listen 443 ssl; # 'ssl' parameter tells NGINX to decrypt the traffic
# 1
location ~ /api/(.*) {
resolver xxx.x.x.xx;
rewrite_by_lua_block {
ngx.req.set_header("x-header", "12345678901234567")
}
}
这里的阿尔卑斯山图片:
还有一个阿尔卑斯fat,它有make
、git
和其他库,可以帮助您在Docker映像中进行构建。Dockerfile:
FROM nginx:1.15-alpine
RUN mkdir -p /run/nginx
RUN apk add --no-cache nginx-mod-http-lua
COPY nginx_conf/ /etc/nginx/ # Your nginx conf
COPY lua/ /etc/lua/ # Your lua files
nginx conf的第一行:
load_module /usr/lib/nginx/modules/ndk_http_module.so;
load_module /usr/lib/nginx/modules/ngx_http_lua_module.so;
pcre_jit on;
我找到了这两个,但发现这两个都不是最新的(上一次推出是在一年前)。此外,他们缺少关于如何启用模块的信息。如果您不删除
include/etc/nginx/modules/*.conf,则不需要这些load\u module
代码>默认值。@Marian:在这种情况下我们如何安装Luarock?我确实在/etc/nginx/conf.dWhy中找到了luajit.load_module“指令的include path,在nginx:[emerg]module”/usr/lib/nginx/modules/ndk_http_module.so中解释得很好的--no cache标志?@jurl“在/etc/nginx/nginx.conf:1中,版本1016001而不是1018000…”。。。去年没有发生这种情况。尝试使用nginx:1.15-alpine,我已检查并正在工作。如果你做的研究,使其与最新版本的工作,请让我知道结果。不管怎样,我编辑了原始答案。感谢您的反馈。Nginx版本与模块版本不匹配,似乎apk add
无法指定版本号。