Nginx 隐藏服务器名称和版本号
来源:互联网 发布:react.js .百度百科 编辑:程序博客网 时间:2024/05/21 07:34
初学nginx,遇到了server_tokens命令,该命令的作用是显示或隐藏掉版本号。
例如server_tokens off; 隐藏版本号。浏览器访问时抓包,查看HTTP响应的Server头没有版本号。
既然版本号可以隐藏,那可不可以隐藏或修改nginx服务器的名称呢?答案是可以,修改或隐藏服务器名称需要修改源码nginx.h,nginx.h在src/core/目录下 。具体操作如下:
把下面两个宏的值修改为自己设定的值,例如"NGX"。 都改为 "" 即隐藏名称。
#define NGINX_VER "nginx/" NGINX_VERSION 改为 #define NGINX_VER "NGX" NGINX_VERSION#define NGINX_VAR "NGINX" 改为 #define NGINX_VAR "NGX"
同理改版本号修改NGINX_VERSION的值
#define NGINX_VERSION "1.8.0"
注意事项
1. 在配置文件nginx.conf中不要使用server_tokens off命令, 因为如果设置了该命令,服务器名称就固定了。
如果配置了server_tokens off,在解析文件时 clcf->server_tokens值为0。见ngx_http_core_module.c 的server_token命令处理函数ngx_conf_set_flag_slot
if (ngx_strcasecmp(value[1].data, (u_char *) "on") == 0) { *fp = 1;} else if (ngx_strcasecmp(value[1].data, (u_char *) "off") == 0) { *fp = 0;}
而在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;if (clcf->server_tokens) {p = (u_char *) ngx_http_server_full_string;len = sizeof(ngx_http_server_full_string) - 1;} else {p = (u_char *) ngx_http_server_string; len = sizeof(ngx_http_server_string) - 1;}
2. 程序重新编译完后,要reload不会生效,需要用kill命令杀死原来的进程,再重新启动,
0 0
- Nginx 隐藏服务器名称和版本号
- nginx服务器隐藏版本号
- 服务器隐藏Nginx的版本号
- 隐藏Nginx和PHP版本号
- 隐藏Nginx和PHP版本号
- 隐藏NGINX banner 和版本号
- 隐藏Nginx和PHP版本号
- ATS 4.2.3隐藏服务器名称及版本号的方法
- nginx 版本号隐藏
- 隐藏nginx 版本号信息
- Nginx隐藏版本号
- 如何查看web服务器的名称和版本号
- Nginx更改源码隐藏软件名和版本号
- nginx及apache版本号隐藏
- 如何隐藏nginx的版本号?
- 手动6 - 隐藏Nginx版本号
- Nginx隐藏软件版本号信息
- 隐藏Nginx版本号的方法
- 2015年大二上-数据结构-图-2-(4)-Floyd算法
- SDL2.0实现触控方法,让屏幕跟随你的手指动起来
- CSS控制文本自动换行
- perl return和break
- PDF格式文件的基本编辑操作
- Nginx 隐藏服务器名称和版本号
- Cannot change version of project facet Dynamic Web Module to 3.0.
- 解决Android端升级安装后自动打开的问题
- 【bzoj3035】【codevs2490】导弹防御塔 二分+匈牙利 || 二分+dinic
- 《Linux目录知识介绍》
- Provider使用遇到错误
- WEB开发框架配置文件和各层注解(SpringMVC + Spring + Hibernate)
- 关于正规方程求解线性回规问题中的最终的值θ
- UNITY3D shader学习心得<三> Vertex and Fragment Shader