web-dev-qa-db-ja.com

Alpine LinuxでnginxのLuaモジュールを追加するにはどうすればよいですか?

Luaモジュールを有効にしたnginx用の無駄のないDockerイメージが欲しいのですが。 Alpine linuxに基づいてこれをどのように作成できますか?

13
Marian

これが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パッケージをインストールすると、特にnginxluajitもインストールされます。

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;
15
Marian

私たちは、nginxとLuaを統合するプラットフォームであるOpenrestyを使用しています。

デフォルトの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")

    }
}

ここにアルパインの画像: https://github.com/openresty/docker-openresty/tree/master/

Dockerイメージ内でのビルドに役立つmakegitおよびその他のライブラリーを備えたAlpine-fatもあります。

0
PeggyScott

Dockerfile:

FROM nginx: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;
0
Piero