首页 > 解决方案 > nginx-log-zmq 模块不适用于 openresty

问题描述

我想用 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获得。

我的码头文件:

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

# connect stdout & stderr
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 configs
COPY *.conf /usr/local/openresty/nginx/conf/
COPY *.lua /usr/local/openresty/nginx/lua/

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

标签: nginxopenresty

解决方案


推荐阅读