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