赞
踩
当我们使用http/https请求时, nginx 会在请求的response里面的header加入Server: nginx:1.18
信息, 如果可以隐藏, 就不会被别人知道, 我用的是哪款web服务器, 或哪个版本.
例如
新浪网:
Server: nginx / Server: WeiBo/LB
开源中国:
Server:Tengine / server: marco/2.13
segmentfault
没有返回Server!/ server: Tengine
zlib
源码, 下载链接, 这个是与 gzip
压缩相关的pcre
, 下载链接 或 下载地址2, 这个是与url正则匹配相关的. 注意此处不能使用pcre2
, 否则可能会报如下错误:解压如下:
主要修改两个部分
修改 src/core/nginx.h
将 NGINX_VER
修改你想要的.
修改 src/http/ngx_http_header_filter_module.c
将 ngx_http_server_string
修改掉, 如: "Server: nginx" CRLF
直接修改成 "Server: haha" CRLF
或者修改成 ngx_http_server_full_string
一致也可以, 这样就不会受配置文件里的 server_tokens off;
配置影响了.
修改 ./src/http/ngx_http_special_response.c
此文件主要是404等错误页面时响应, 同样可以进行定制.
主要是将 ngx_http_error_tail
修改成自己想要的.或者修改成 ngx_http_error_full_tail
一致也可以. 这样就不会受配置文件里的 server_tokens off;
配置影响了.
./configure \
--prefix=/opt/nginx \
--with-http_ssl_module \
--with-stream \
--with-pcre=/root/dev/nginx/pcre-8.40 \
--with-zlib=/root/dev/nginx/zlib-1.2.11
说明:
--prefix
安装到哪个目录, 默认是安装到 /usr/local/nginx
--with-http_ssl_module
支持 https
, 要不然证书就无法使用. 影响与https相关的指令ssl_protocols
,ssl_ciphers
--with-pcre
指定 pcre
源码目录. 影响url正则相关--with-zlib
指定 zlib
源码目录. 影响gzip解压缩相关./configure --help
为啥要加 zlib
(与gzip
压缩相关) 或 pcre
(与正则相关), 本次系统使用的是ubuntu20.0
, 必须要有, 否则报错:
没有 zlib
报错:
没有pcre
报错:
加入之后运行配置检查, 没有报错, 则算是正常, 如下:
开始 make
进行编译
可能会遇到的错误:
说明缺少 g++ 编译器相关的. 安装
sudo apt install g++
或直接安装 build-essential, 因为 build-essential 包含 g++
sudo apt install build-essential
如果出现
则安装一下openssl
apt-get install openssl libssl-dev
安装完成后, 断续编译 nginx, 编译的过程可能会比较慢, 等会结果如下, 没有报错, 则编译完成.
再执行安装
./make install
安装结束
/opt/nginx/sbin/nginx
在页面中打开地址, 并查看响应头信息
server 标识已被修改.
定制的错误页面.
如果想要其他的效果, 完全可以修改源码进行定制.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。