一般Nginx有哪些内部名称展示,如有通过HTTP Response Header中的Server、错误页的footer、FPM-FastCGI等。而且一般我们业务在生产环境下,一般都需要用nginx做服务负载或者反向代理等,所以为了不想暴露我们的nginx版本号,以及负载Server名称也是一种信息安全的体现。这个时候我们修改nginx的Server名称,应用版本号等信息;
正常nginx的应用名称和版本
修改完之后
所以我们修改nginx的版本号,Server名称时,一定要在我们编译nginx之前,修改nginx的源代码文件,这样编译完之后,就会生效了。如果nginx已经编译完了,那这时候你只能隐藏nginx的版本号,但是不能修改Server名称。
步骤
对于nginx来说,一般来说修改3个位置,一个是nginx.h、另一个是ngx_http_header_filter_module.c、还有一个ngx_http_special_response.c。
1, 修改src/core/nginx.h(Nginx内部名称的)
#define NGINX_VERSION "1.8.0"
#define NGINX_VER "NGINX/" NGINX_VERSION
解释:NGINX_VERSION是版本号,NGINX_VER是名称
2,修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader响应头)
static char ngx_http_server_string[] = "Server: nginx" CRLF;
3, 修改src/http/ngx_http_special_response.c(错误页的底部Footer)
static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;