Nginx:隐藏服务器签名

jutyujz0  于 2023-03-07  发布在  Nginx
关注(0)|答案(1)|浏览(164)

我读过很多关于StackOverflow的问题。对很多人来说,它们很有帮助,但对我来说没有。
我需要隐藏服务器名称,或者至少更改它。
我编写了一个docker文件,用于下载一个动态模块并在下一步将其注入到配置中。

ARG VERSION=alpine
FROM nginx:${VERSION} as builder

ENV MORE_HEADERS_VERSION=0.34
ENV MORE_HEADERS_GITREPO=openresty/headers-more-nginx-module

RUN wget "http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz" -O nginx.tar.gz && \
    wget "https://github.com/${MORE_HEADERS_GITREPO}/archive/v${MORE_HEADERS_VERSION}.tar.gz" -O extra_module.tar.gz

RUN  apk add --no-cache --virtual .build-deps \
    gcc \
    libc-dev \
    make \
    openssl-dev \
    pcre-dev \
    zlib-dev \
    linux-headers \
    libxslt-dev \
    gd-dev \
    geoip-dev \
    perl-dev \
    libedit-dev \
    mercurial \
    bash \
    alpine-sdk \
    findutils

SHELL ["/bin/ash", "-eo", "pipefail", "-c"]

RUN rm -rf /usr/src/nginx /usr/src/extra_module && mkdir -p /usr/src/nginx /usr/src/extra_module && \
    tar -zxC /usr/src/nginx -f nginx.tar.gz && \
    tar -xzC /usr/src/extra_module -f extra_module.tar.gz

WORKDIR /usr/src/nginx/nginx-${NGINX_VERSION}

RUN CONFARGS=$(nginx -V 2>&1 | sed -n -e 's/^.*arguments: //p') && \
    sh -c "./configure --with-compat $CONFARGS --add-dynamic-module=/usr/src/extra_module/*" && make modules

FROM nginx:${VERSION}

COPY --from=builder /usr/src/nginx/nginx-${NGINX_VERSION}/objs/*_module.so /etc/nginx/modules/

COPY devops/nginx/nginx.conf /etc/nginx/

EXPOSE 81 82
CMD ["nginx", "-g", "daemon off;"]

然后,我将该模块添加到nginx.conf文件中(我还尝试不使用“”加载该模块)

load_module "modules/ngx_http_headers_more_filter_module.so";

最后,我写了http块

http{
    more_clear_headers      server;
    more_set_headers        "server: hidden";
    server_tokens           off;
    proxy_pass_header       server; //Tried to add it for reverse proxying, but it did not work
}

仅关闭服务器令牌;工作。我已经删除了nginx版本,但没有它的签名。more_clear_headersmore_set_headers不影响它。我错过了什么?
P.S.检查了服务器中的模块文件夹,我的模块加载正确
P.P.S.尝试了大写S的服务器,也没有成功(正如许多人建议的那样,但我的响应是小写的)

tyu7yeag

tyu7yeag1#

除非您使用Nginx Plus(付费)或自己构建Nginx并删除源代码中包含的头文件,否则服务器头文件无法删除。
https://serverfault.com/questions/214242/can-i-hide-all-server-os-info的副本

相关问题