使用 openresty 时 nginx-log-zmq 模块无法使用

我想在 openresty 中构建 alticelabs/nginx-log-zmq

我的命令与说明文档中的完全相同:

./configure --add-module=../nginx-log-zmq-master
make
make install

然而,当运行具有任何 zmq 指令的 nginx,如 log_zmq_server 时,nginx在启动时会中止:

$ /usr/local/openresty/bin/openresty
> 2018/11/03 21:06:06 [emerg] 1#0: unknown directive "log_zmq_server" in /usr/local/openresty/nginx/conf/nginx.conf:13

我确定编译本身是可以工作的,因为日志显示它已经被正确编译,而且之前因为缺少依赖项(libzmq3-dev)而报告了一个错误:

adding module in /openresty-1.13.6.1/../nginx-log-zmq-master
checking for ZeroMQ library ... found
 + ngx_http_log_zmq_module was configured
[...]

完整的日志输出可在https://paste.ee/p/BCdf6中找到。

我的dockerfile:

FROM ubuntu:xenial

RUN apt-get -y update \
  && apt-get -y upgrade \
  && apt-get install -y \
  libpcre3 \
  libpcre3-dev \
  libssl-dev \
  libperl4-corelibs-perl \
  libzmq3-dev \
  g++ \
  cmake \
  unzip \
  wget \
  && apt-get clean \
  && rm -rf /var/lib/apt/lists/*

RUN wget https://github.com/openresty/openresty/releases/download/v1.13.6.1/openresty-1.13.6.1.tar.gz \
  && wget https://github.com/alticelabs/nginx-log-zmq/archive/master.zip \
  && unzip master.zip \
  && rm master.zip \
  && tar -xvf openresty-1.13.6.1.tar.gz \
  && rm openresty-1.13.6.1.tar.gz \
  && cd openresty-1.13.6.1/ \
  && ./configure --add-module=../nginx-log-zmq-master -j2 \
  && make -j2 \
  && make install \
  && cd .. \
  && rm -r openresty-1.13.6.1 \
  && rm -r nginx-log-zmq-master

# 连接标准输出和标准错误输出
RUN ln -sf /dev/stdout /usr/local/openresty/nginx/logs/access.log \
  && ln -sf /dev/stderr /usr/local/openresty/nginx/logs/error.log

COPY cmd.sh /usr/bin/cmd.sh
RUN chmod +x /usr/bin/cmd.sh

# 复制配置
COPY *.conf /usr/local/openresty/nginx/conf/
COPY *.lua /usr/local/openresty/nginx/lua/

CMD ["/usr/local/openresty/bin/openresty", "-g", "daemon off;"]
点赞