Features: - JSON logging of HTTP requests to Unix domain socket - Configurable HTTP headers logging (flat JSON structure) - Header value truncation and count limits - Automatic reconnect on socket disconnection - Error reporting with throttling Configuration directives: - JsonSockLogEnabled: Enable/disable logging - JsonSockLogSocket: Unix socket path - JsonSockLogHeaders: List of headers to log - JsonSockLogMaxHeaders: Maximum headers to log - JsonSockLogMaxHeaderValueLen: Max header value length - JsonSockLogReconnectInterval: Reconnect delay - JsonSockLogErrorReportInterval: Error log throttle Includes: - Module source code (src/) - Unit and integration tests (tests/, scripts/) - Documentation (README.md, architecture.yml) - Build configuration (CMakeLists.txt, Makefile) - Packaging (deb/rpm) Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
41 lines
855 B
Docker
41 lines
855 B
Docker
# Dockerfile for running Unix socket integration tests
|
|
FROM rockylinux:8
|
|
|
|
# Install dependencies
|
|
RUN dnf install -y epel-release && \
|
|
dnf install -y \
|
|
gcc \
|
|
make \
|
|
httpd \
|
|
httpd-devel \
|
|
apr-devel \
|
|
apr-util-devel \
|
|
python3 \
|
|
curl \
|
|
redhat-rpm-config \
|
|
&& dnf clean all
|
|
|
|
# Copy module source
|
|
COPY src/ src/
|
|
COPY Makefile Makefile
|
|
COPY conf/ conf/
|
|
|
|
# Build the module
|
|
RUN make APXS=/usr/bin/apxs
|
|
|
|
# Copy test scripts
|
|
COPY scripts/test_unix_socket.sh /test_unix_socket.sh
|
|
COPY scripts/socket_listener.py /build/scripts/socket_listener.py
|
|
RUN chmod +x /test_unix_socket.sh
|
|
RUN mkdir -p /build/scripts
|
|
|
|
# Create document root
|
|
RUN mkdir -p /var/www/html
|
|
RUN echo "<html><body><h1>Test</h1></body></html>" > /var/www/html/index.html
|
|
|
|
# Set working directory
|
|
WORKDIR /build
|
|
|
|
# Run the test
|
|
CMD ["/test_unix_socket.sh"]
|