无论是作为Web服务器或其他类型程序的反向代理服务器,Nginx("engine x")都有着高性能且轻量级的优势。其特点是占有内存少,并 发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好。这也使得Nginx在如今不管是存放在高配独立服务器上的大型的门户,还是存 放在迷你64M内存VPS上的小型的个人博客,Nginx都在被广泛使用着。
国内淘宝、新浪、网易、腾讯等都在使用。其中淘宝正是基于原作者的BSD-like协议,在其源代码基础上开发了Tengine,这暂且不表。
今天我们来说说,如何修改Nginx其内部默认名称。这对安全或者装逼都是非常实用的。
我们都知道一般Nginx有哪些内部名称展示,如有通过HTTP Response
Header中的Server、错误页的footer、FPM-FastCGI等。
一般来说修改3个位置,一个是nginx.h、另一个是ngx_http_header_filter_module.c、还有一个ngx_http_special_response.c。
提示:以下修改需要在编译安装Nginx之前进行,修改之后再编译
现在Web Server使用广泛,针对它的攻击也越来越多,Nginx这玩意出道时间也并不长,虽然国内很多门户网站都用它,小内存VPS用户也爱它,但是我可不想 哪天它爆出了个惊天BUG,上次80sec公布的Nginx相关PHP FPM漏洞就是警示哦,倘若伪装了我的Nginx服务器,攻击者就不知道我使用的是何种Web Server,也就无从下手了。
修改src/core/nginx.h(Nginx内部名称的)
#define NGINX_VERSION "1.8.0" #define NGINX_VER "NGINX/" NGINX_VERSION
NGINX_VERSION是版本号,NGINX_VER是名称
修改src/http/ngx_http_header_filter_module.c(HTTP ResponseHeader)
static char ngx_http_server_string[] = "Server: nginx" CRLF;
修改src/http/ngx_http_special_response.c(修改错误页的底部Footer)
static u_char ngx_http_error_tail[] = "<hr><center>nginx</center>" CRLF "</body>" CRLF "</html>" CRLF ;
为什么不修改安装后的Nginx Config下的fastcgi.conf呢?
因为现在外部已经是无法了解我们的服务器名称,已经达到我们的目的了。
而且我们常用的一些程序,可能会对你的前端(反向代理服务器)做判断,毕竟Nginx不同于Apache,无法动态规则。
特别是Wordpress的缓存插件,大多会通过判断你是否Nginx,如果是的话,提醒你添加一些规则语句。
这时fastcgi.conf就起作用的,其中的
fastcgi_param SERVER_SOFTWARE
nginx/$nginx_version;可以使得PHP与Nginx内部之间的互相了解。
所以我的建议,还是不修改fastcgi.conf,当然你非要改,也可以的。
相关推荐
主要介绍了修改Nginx版本名称伪装任意web server的方法,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
Nginx.1.Web.Server.Implementation.Cookbook
修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页修改Nginx默认主页
在已经通过LNMP安装了NGINX的生产环境下如何通过重新编译实现http伪装
内容概要:nginx1.17.4版本因安全相关要求需要隐藏server名称,将源代码进行修改得到此资源文件,可以直接使用。 适用人群:使用nginx部署项目的人员,nginx需要隐藏server名称的人员。 使用方法:直接下载此资源,...
讲解Nginx中最实用的Webserver场景 提供一套整体的搭建配置方式 2.通用性 Nginx中间件,不局限于业务逻辑,有效 独立于后台开发框架(不论后端是Java开 发、PHP开发、或者其他语言框架) 都能做到平台通用 3.原理...
nginx不仅可以隐藏版本信息,还支持自定义web服务器信息 先看看最终的隐藏结果吧 具体怎么实现呢,其实也很简单,请往下看 1 官网下载最新稳定版 wget http://nginx.org/download/nginx-1.14.1.tar.gz 2 解压 tar...
强大的http server提供多用户多线程高并发高新建,各大网站均有使用
然后重新加载nginx,可以看到server头部也是不带版本号,也可以通过404查看 2、返回自定义服务器类型 通过curl -i http://127.0.0.1 查看当前的类型或者一些站长工具都可以看到,可以修改一为gws或者GFW来威慑一些...
python-nginx, 在 python 中,创建和修改 Nginx serverblock配置 python 用于在 python ( 包含评论) 中轻松创建和修改 Nginx serverblock配置的模块。安装pip install python-nginx示例创建 Nginx serverb
亲测好用.nginx-1.13.3,nginx1.13.3不存在信息泄漏漏洞安全稳定nginx版本,不存在漏洞 nginx-1.13.3 nginx1.13.3 安全稳定 nginx版本
nginx各个阶段的历史版本源码,从0.1版本开始,可以用于研究nginx的代码框架
LINUX操作系统、Nginx Web服务器、MySQL/MariaDB数据库服务器、PHP/Python/Perl... 等开发语言。
nginx版本升级步骤
nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务器宕机后端web服务将无法提供服务,影响严重。 为了屏蔽负载均衡服务器的宕机,需要建立一个备份机。主服务器和备份机上都...
搭建web服务nginx所有的包。LNMP代表的就是:Linux系统下Nginx+MySQL+PHP这种网站服务器架构。 Linux是一类Unix计算机操作系统的统称,是目前最流行的免费操作系统。代表版本有:debian、centos、ubuntu、fedora、...
Windows版nginx去掉header中server后面的信息(nginx版本1.21.1) 使用方法: 1、关闭nginx服务 2、将新的nginx.exe替换原有的exe文件 3、重启nginx服务
1、默认使用curl命令访问: ... 2、修改nginx.conf配置文件,在http配置段中新增如下代码: # vim /usr/local/...fastcgi_param SERVER_SOFTWARE nginx/$nginx_version; 4、重载Nginx: # nginx -s reload 5、使用cur