nginx隐藏版本号和标识

前言

问:为什么要隐藏??
答:为了安全,如果暴露版本信息,有可能黑客可以通过版本信息,得知该版本存在的漏洞,进而对服务器进行攻击。
PS: 本来隐藏版本号就已经达到要求了,但可爱的XX要求把标识也隐藏掉!!

一、隐藏版本号

  1. 隐藏版本号比较简单,只要修改配置文件即可。 在配置文件中加入以下配置重启即可。
 server_tokens off;

这个可以加在http块,server块。。 看自己的需求
配置文件
修改效果:

  • 修改前:
    修改前

  • 修改后:
    修改后

二、隐藏nginx标识

这个会比较麻烦,要修改nginx的源码。

  1. 找到源码位置。先修改nginx.h文件(大约在14行)使用vi编辑器的时候可以使用 :set nu 来显示行号。
cd /home/nginx-1.21.6
vi src/core/nginx.h

如图修改成

  • 修改前:
    修改前

  • 修改后:
    修改后2. 修改 ngx_http_special_response.c 和 ngx_http_header_filter_module.c 两个文件,这两个文件在http包下。
    (1) ngx_http_special_response.c 修改22, 29, 36行,注意前后的引号

vi src/http/ngx_http_special_response.c
  • 修改前:
    修改前

  • 修改后:
    修改后

(2)ngx_http_header_filter_module.c 修改49行

vi src/http/ngx_http_header_filter_module.c
  • 修改前:
    修改前

  • 修改后:
    修改后

  1. 停止nginx,备份当前nginx,重新编译安装。
# 停止NGINX
/usr/local/nginx/sbin/nginx -s stop
# 备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# 查看之前的编译参数
/usr/local/nginx/sbin/nginx -V
# 重新编译安装
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
make install
# 启动
/usr/local/nginx/sbin/nginx

编译参数

修改后效果:
修改后效果

ps:这里使用一个不存在的页面进行实验,原本自带的index页和错误页要修改对应的nginx字符串。
默认页面

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐