出于网络安全考虑,避免某版本爆出漏洞后被别人利用可在编译时修改源码,在官网上下载nginx源码
然后解压,解压后编辑源码中的nginx.h文件
vim src/core/nginx.h
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGINX_H_INCLUDED_ #define _NGINX_H_INCLUDED_ #define nginx_version 1010002 //修改版本号 #define NGINX_VERSION "1.1.2" //修改版本号 #define NGINX_VER "Nginx/" NGINX_VERSION //修改版本 #ifdef NGX_BUILD #define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")" #else #define NGINX_VER_BUILD NGINX_VER #endif #define NGINX_VAR "NGINX" //修改版本 #define NGX_OLDPID_EXT ".oldbin" #endif /* _NGINX_H_INCLUDED_ */
在以上我注明的部分进行修改可修改为任何字符,访问的时候客户端就只能获取到你修改后的信息了。
如我修改为如下:
/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */ #ifndef _NGINX_H_INCLUDED_ #define _NGINX_H_INCLUDED_ #define nginx_version 40901 #define NGINX_VERSION "4.09.1" #define NGINX_VER "kirito/" NGINX_VERSION #ifdef NGX_BUILD #define NGINX_VER_BUILD NGINX_VER " (" NGX_BUILD ")" #else #define NGINX_VER_BUILD NGINX_VER #endif #define NGINX_VAR "KIRITO" #define NGX_OLDPID_EXT ".oldbin" #endif /* _NGINX_H_INCLUDED_ */
访问的时候就只能获得修改后的信息而不能获取到真实的服务器版本信息。
需要注意的是如果设置了 server_tokens off; 返回给客户端的信息仍然会是nginx,但是不显示具体版本号。