在CentOS中从源代码编译后如何自定义Nginx服务器名称
来自菜鸟教程
介绍
作为 如何从源代码编译 nginx 文章的后续,本教程帮助您自定义主机上的服务器名称。 通常,公司出于安全原因修改服务器名称。 如果在特定版本的网络服务器中发现漏洞,黑客可以复制它以利用该行为。
自定义你的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
您需要按照 this guide 查看配置选项或从命令行历史记录中搜索:
./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