Linux 如何更改(隐藏)Nginx服务器签名?
我可以使用设置为off的server_tokens选项隐藏Nginx版本。但无法更改Nginx服务器签名 我做的步骤 1.)将源文件(src/http/ngx_http_header_filter_module.c)中的Nginx服务器名称更改为“我的服务器”。然后,编译nginx。但当我加载url时,它不起作用。奇怪的是,当我使用curl命令时,我可以看到我更新的签名。但这并不会在浏览器中更新 2.)所以我尝试了第三方模块(更多nginx模块)。这也不管用。通过Curl获取更新的名称。但不是在浏览器中Linux 如何更改(隐藏)Nginx服务器签名?,linux,nginx,centos,Linux,Nginx,Centos,我可以使用设置为off的server_tokens选项隐藏Nginx版本。但无法更改Nginx服务器签名 我做的步骤 1.)将源文件(src/http/ngx_http_header_filter_module.c)中的Nginx服务器名称更改为“我的服务器”。然后,编译nginx。但当我加载url时,它不起作用。奇怪的是,当我使用curl命令时,我可以看到我更新的签名。但这并不会在浏览器中更新 2.)所以我尝试了第三方模块(更多nginx模块)。这也不管用。通过Curl获取更新的名称。但不是在
more\u set\u headers
指令更改它转到nginx conf并关闭服务器\u令牌
/etc/nginx/nginx.conf
server_tokens off;
如果你在ubuntu工作,那么
sudo apt-get install nginx-extras
/etc/nginx/nginx.conf
并在http
下添加:
http {
more_set_headers "Server: Your_New_Server_Name";
server_tokens off;
}
sudo service nginx restart
如果使用ModSecurity v2.0-v2.9,那么在.conf文件中可以使用
SecServerSignature SomeName
ModSecurity v3 SecServerSignature已被弃用,但我不知道他们是否用其他东西替换了它。您可以在Nginx配置中使用它
proxy_pass_header Server;
这就是你对nginx开发者说“谢谢”的方式吗?也许你的浏览器只是缓存了标题?在当前浏览器中尝试其他浏览器或Ctrl-F5/Ctrl-Rone@folibis,是的,我在不同的浏览器上进行了检查。但仍然是一样的:(@folibis是的,我已经将Nginx设置为apache LB的反向代理。我需要在其他地方进行更改吗?@VBart这是一种通过尽可能少地泄漏信息来提高安全性的小方法。在通过设计确保其尽可能安全后,通过模糊实现安全性是一种不错的做法(也就是说,它的补丁和配置都很好)。已经尝试过了,并在我的第二点上解释了相同的问题。有没有其他方法来更改它。您使用的是什么版本?它至少需要v0.7.44。@KMG我在使用“更多集头”时遇到了同样的问题。事实上,它在“curl”中工作表明它起作用了。原来浏览器正在缓存请求。一旦我解决了这个问题,问题就解决了。此外,您应该提到在哪里添加配置选项(例如,到
http
,server
或location
)你能再详细一点吗?如果你是反向代理某个后端服务器,这是可行的。还有其他的情况吗?2020-01-18:使用sudo添加apt存储库ppa:nginx/stable
提供nginx/1.16.1
而不是nginx/1.14.0
在Ubuntu 18.04
上提供nginx/1.16.1
而不是。