介绍
本教程可以帮助您在主机上定制服务器的名称。通常,公司出于安全原因修改服务器名称。如果在特定版本的网络服务器中发现漏洞,黑客可以复制该漏洞以利用此行为。 自定义nginx服务器的名称需要修改源代码(本教程将指导您逐步),并需要从前一篇文章重新编译。
查找服务器的版本
curl -I http://example.com/
HTTP/1.1 200 OK
Server: nginx/1.5.6 # <-- this is the version of nginx you currently use
Date: Thu, 17 Nov 2013 20:40:18 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 17 Nov 2013 20:37:02 GMT
Connection: keep-alive
ETag: "51f18c6e-264"
Accept-Ranges: bytes
更改Nginx服务器字符串
从上一个教程回到nginx源目录。你应该看看前面的教程从源代码编译的“下载源代码”部分之后。
cd ~/src/nginx/
vi +49 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: the-ocean" CRLF;
static char ngx_http_server_full_string[] = "Server: the-ocean" CRLF;
使用新选项重新编译Nginx
您需要按照本指南来看看配置选项,或从你的命令行历史搜索:
./configure ...
make
make install
停止在配置中显示服务器版本
vi +19 /etc/nginx/nginx.conf
添加http配置下的行。如果您有部分,请为https重复
http {
...
server_tokens off;
....
重新启动Nginx服务
我们需要重新启动nginx,因为nginx文件已经改变:
service nginx restart
验证结果
让我们验证我们现在是否看到服务器信息:
curl -I http://example.com/
HTTP/1.1 200 OK
Server: the-ocean
Date: Thu, 17 Nov 2013 20:50:17 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Thu, 17 Nov 2013 20:37:02 GMT
Connection: keep-alive
ETag: "51f18c6e-264"
Accept-Ranges: bytes