使用构建名称重新编译 nginx 并保留当前配置

使用构建名称重新编译 nginx 并保留当前配置

我已经运行 nginx 服务器一段时间了,并且做了大量更改,以便为我的一位客户提供合适的服务。他们最近聘请了渗透测试人员,希望我加强安全性。因此,我需要隐藏 nginx 的构建名称以满足他们的要求。但是,似乎我需要重新编译 nginx 才能做到这一点。我只是想知道在使用构建名称选项重新编译时,是否有办法保留我对配置等的所有更改。

答案1

重建 nginx 时,您的配置不会改变。如果make install检测到现有配置,它不会覆盖它们。为了完全确定,只需复制到nginx.confnginx.conf.bak类似位置。但是,听起来您需要配置管理和某种构建过程,这将在安全审计中为您加分。我会考虑至少为您的配置设置一个本地git存储库,并可能travis管理jenkins发布,因为您需要随时了解新的安全更新。

对于到达此处的任何搜索,nginx 版本在编译时由变量设置,但不要全局更改它,因为其他进程会使用它。需要在以下位置NGINX_VER手动更改变量:ngx_http_header_filter_module.c

static u_char ngx_http_server_string[] = "Server: yourservername" CRLF;
static u_char ngx_http_server_full_string[] = "Server: yourservername/1.0" CRLF;
static u_char ngx_http_server_build_string[] = "Server: " NGINX_VER_BUILD CRLF;

答案2

我从这条评论中得到了我需要的答案:https://stackoverflow.com/questions/24594971/how-to-changehide-the-nginx-server-signature/38967105#38967105

如果你在 ubuntu 中工作

首先安装 nginx-extras

sudo apt-get install nginx-extras

转到 /etc/nginx/nginx.conf 并在 http 下添加:

http {
    more_set_headers "Server: Your_New_Server_Name";
    server_tokens off; 
}

重启 nginx

sudo service nginx restart

相关内容