如何更改(隐藏)Nginx服务器签名?

KMG*_*KMG 19 linux centos nginx

我可以通过将server_tokens选项设置为off来隐藏Nginx版本.但无法更改Nginx Server签名.

我做的步骤,

1.)将源文件(src/http/ngx_http_header_filter_module.c)中的Nginx服务器名称更改为"My-Server".之后,编译了nginx.但是当我加载网址时它无法正常工作.奇怪的是,当我使用curl命令时,我可以看到更新的Signature.但是这在浏览器中没有更新.

2.)所以我尝试了第三方模块(headers-more-nginx-module).这太不行了.通过Curl获取更新的名称.但不是在浏览器中.

小智 31

如果你在ubuntu工作那么

  1. 首先安装 nginx-extras

    sudo apt-get install nginx-extras
    
    Run Code Online (Sandbox Code Playgroud)
  2. 转到/etc/nginx/nginx.conf并http添加:

    http {
        more_set_headers "Server: Your_New_Server_Name";
        server_tokens off; 
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 重启nginx

    sudo service nginx restart
    
    Run Code Online (Sandbox Code Playgroud)

  • 2020-01-18:在“Ubuntu 18.04”上使用“sudo add-apt-repository ppa:nginx/stable”为您提供“nginx/1.16.1”而不是“nginx/1.14.0”。有福恩。https://observatory.mozilla.org/ https://www.ssllabs.com/ssltest/ https://securityheaders.com/ https://www.sslshopper.com/ssl-checker.html https://www .immuniweb.com/websec/ (2认同)

Tan*_*Tat 10

  1. 安装HttpHeadersMoreModule- http://wiki.nginx.org/HttpHeadersMoreModule
  2. 使用more_set_headers指令更改它.
  3. 重新加载Nginx才能生效.

    隐藏nginx版本信息.

    server_tokens off;

    更改服务器名称.

    more_set_headers"服务器:MyServerName";


nar*_*ren 7

转到nginx conf并关闭server_tokens.

/etc/nginx/nginx.conf

server_tokens off;
Run Code Online (Sandbox Code Playgroud)

  • [这只删除版本号,而不是`Server`标题或名称"nginx"](http://nginx.org/en/docs/http/ngx_http_core_module.html#server_tokens)!此外,您应该提到将配置选项添加到的位置(例如,添加到`http`,`server`或`location`) (12认同)

Pri*_*tln 6

您可以在 Nginx 配置中使用它。

proxy_pass_header Server;
Run Code Online (Sandbox Code Playgroud)

  • 您能详细说明一下吗?如果您对某些后端服务器进行反向代理,则此方法有效。还有其他情况可以这样做吗? (2认同)