当使用nginx做为web服务器时,在头部信息会看到版本号相关的信息
关闭nginx版本号比较简单,只需要在nginx.conf的http内添加如下内容重载配置即可
server_tokens off
可以看到版本号没有了
如果想更改Server 的显示名称,需要改nginx的源码,找到nginx的安装包路径
vi /root/nginx-1.2.6/src/core/nginx.h
找到以下内容
#define NGINX_VERSION "1.2.6"
#define NGINX_VER "nginx/" NGINX_VERSION
#define NGINX_VAR "NGINX"
#define NGX_OLDPID_EXT ".oldbin"
修改成如下内容,可以根据自己需要修改
#define NGINX_VERSION "10"
#define NGINX_VER "test/" NGINX_VERSION
#define NGINX_VAR "test"
#define NGX_OLDPID_EXT ".oldbin"
nginx.conf添加了 server_tokens off 后,还需修改以下文件
vi /root/nginx-1.2.6/src/http/ngx_http_header_filter_module.c
找到以下内容
static char ngx_http_server_string[] = "Server: nginx" CRLF;
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
修改成如下内容
static char ngx_http_server_string[] = "Server: test" CRLF;
static char ngx_http_server_full_string[] = "Server: test" CRLF;
最后再修改以下文件,该文件是错误页面显示的内容,生产环境建议自定义错误页面
vi /root/nginx-1.2.6/src/http/ngx_http_special_response.c
找到以下内容
"<hr><center>nginx</center>" CRLF
修改成如下内容
"<hr><center>test</center>" CRLF
查看安装时的编译参数
/usb/local/nginx/sbin/nginx -V
重新编译
cd /root/nginx-1.2.6
./configure --with-http_ssl_module --with-http_secure_link_module
make
由于nginx已在提供服务,所以我这里不安装,选择平滑升级
mv /usb/local/nginx/sbin/nginx /usb/local/nginx/sbin/nginx.old
cp /root/nginx-1.2.6/objs/nginx /usb/local/nginx/sbin/
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
再次查看