修改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: Microsoft-IIS/7.5
" CRLF;
static char ngx_http_server_full_string[] = "Server: Microsoft-IIS/7.5
" CRLF;
一. 介绍ngx_headers_more
ngx_headers_more 用于添加、设置和清除输入和输出的头信息。nginx源码没有包含该模块,需要另行添加。
该模块是ngx_http_headers_module模块的增强版,提供了更多的实用工具,比如复位或清除内置头信息,如Content-Type, Content-Length, 和Server。
可以允许你使用-s选项指定HTTP状态码,使用-t选项指定内容类型,通过more_set_headers 和 more_clear_headers 指令来修改输出头信息。如:
输入头信息也可以这么修改,如:
-t选项也可以在more_set_input_headers和more_clear_input_headers指令中使用。
不像标准头模块,该模块的指示适用于所有的状态码,包括4xx和5xx的。 add_header只适用于200,201,204,206,301,302,303,304,或307。
标准头模块ngx_http_headers_module参见:《ngx_http_headers_module模块add_header和expires指令》
二. 安装ngx_headers_more
ngx_headers_more 包下载地址:http://github.com/agentzh/headers-more-nginx-module/tags
ngx_openresty包含该模块。
三. 指令说明
more_set_headers
语法:more_set_headers [-t <content-type list>]... [-s <status-code list>]... <new-header>...
默认值:no
配置段:http, server, location, location if
阶段:输出报头过滤器
替换(如有)或增加(如果不是所有)指定的输出头时响应状态代码与-s选项相匹配和响应的内容类型的-t选项指定的类型相匹配的。
如果没有指定-s或-t,或有一个空表值,无需匹配。因此,对于下面的指定,任何状态码和任何内容类型都讲设置。
具有相同名称的响应头总是覆盖。如果要添加头,可以使用标准的add_header指令代替。
单个指令可以设置/添加多个输出头。如:
在单一指令中,选项可以多次出现,如:
等同于:
新的头是下面形式之一:
Name: Value
Name:
Name
最后两个有效清除的头名称的值。Nginx的变量允许是头值,如:
注意:more_set_headers允许在location的if块中,但不允许在server的if块中。下面的配置就报语法错误:
more_clear_headers
语法:more_clear_headers [-t <content-type list>]... [-s <status-code list>]... <new-header>...
默认值:no
配置段:http, server, location, location if
阶段:输出报头过滤器
清除指定的输出头。
也可以使用通配符*,如:
清除开始由“X-Hidden-”任何输出头。
more_set_input_headers
语法:more_set_input_headers [-r] [-t <content-type list>]... <new-header>...
默认值:no
配置段:http, server, location, location if
阶段: rewrite tail
非常类似more_set_headers,不同的是它工作在输入头(或请求头),它仅支持-t选项。
注意:使用-t选项的是过滤请求头的Content-Type,而不是响应头的。
more_clear_input_headers
语法:more_clear_input_headers [-t <content-type list>]... <new-header>...
默认值:no
配置段:http, server, location, location if
阶段: rewrite tail
清除指定输入头。如:
四. ngx_headers_more局限性
1. 不同于标准头模块,该模块不会对下面头有效: Expires, Cache-Control, 和Last-Modified。
2. 使用此模块无法删除Connection的响应报头。唯一方法是更改src/ HTTP/ ngx_http_header_filter_module.c文件。
五. 使用ngx_headers_more
六. 应用ngx_headers_more
修改web服务器是什么软件,什么版本,同时隐藏Centent-Type、Accept-Range、Content-Length头信息。
404状态码添加header
配置如下:
相关推荐
Nginx还提供了一个`expires`指令,允许我们启用或禁用,添加或修改响应头中的`Expires`和`Cache-Control`字段,这是控制客户端缓存行为的重要手段。`expires`指令的基本语法如下: ``` expires [modified] time; ...
其次,修改Nginx返回的响应头信息也是一种常见的隐藏服务器细节的方式。通过编辑nginx.conf文件中的log_format指令,可以自定义日志的格式。例如,可以自定义一个日志格式,其中记录客户端地址、请求方式、请求的...
前者控制HTTP响应头中的"Server"字段,后者则涉及特定状态码(如404、500等)时的页面显示。 1. 在`ngx_http_header_filter_module.c`文件的第49行,将默认的服务器信息替换为你自定义的字符串,例如:"Server: ...
通过`curl -I <server_ip>`命令测试,确认响应头中的Server字段已显示为自定义的信息。 #### 三、Nginx性能优化 ##### 3.1 调整工作进程数 根据服务器CPU核心数量来设置`worker_processes`,通常设置为等于或小于...
这将更改HTTP响应头中的"Server"字段。 例如,将`NGINX_VERSION`改为`"1.0"`,并在`ngx_http_server_string`中使用自定义标识: ```c #define NGINX_VERSION "1.0" #define NGINX_VER "clsn/" NGINX_VERSION ... ...
headers_more_nginx_module,也称为headers_more模块,是由Evan Miller开发的一个第三方Nginx模块,其主要功能是提供对HTTP响应头的额外操作,包括添加、删除或修改HTTP头字段。这个模块在默认的Nginx配置中并不包含...
# 设置 access key 的请求头字段名 location /download/ { root /var/www/download; index index.html; # 使用 accesskey 检查 accesskey_check on; } } } ``` 在这个配置中,`accesskey_key` 设置了 ...
此配置会阻止Nginx在错误消息和"Server"响应头字段中显示其版本信息。这一改动后,重新加载Nginx配置文件,例如使用`/application/nginx/sbin/nginx -s reload`命令,就可以检查是否成功隐藏了版本信息。 除了隐藏...
当一个请求到达Nginx时,它会检查请求的Host头字段,并尝试匹配`server_name`设置来确定应该将请求路由到哪个虚拟主机。在配置文件中,你可能会看到多个`server_name`值,这表示该虚拟主机可以响应多个不同的域名。 ...
例如,你可能希望检查服务器返回的特定报头字段,如`X-Server-Health`,如果该字段的值为“OK”,则认为服务器是健康的。这样可以确保服务器不仅返回正确的状态码,而且还能执行必要的业务逻辑。 ### 配置健康检查...
Nginx处理HTTP请求的过程主要包括:解析请求头中的`Host`字段,匹配相应的`server_name`,决定使用哪个`server`块处理请求,以及通过`proxy_pass`实现反向代理和负载均衡。通过精细配置,Nginx能有效地管理多个域并...
- 新增对特定头部字段进行哈希的选项,如 `$http_user_agent` 或 `$cookie_session_id`。 - 修复已知的bug和提高性能。 - 可能添加了新的配置指令,以提供更灵活的配置选项。 要了解 `0.3.2` 版本的详细变更,通常...
- 通过添加 CORS 相关头字段实现。 ```nginx location / { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-...
` 等响应头,Nginx 可以帮助处理跨域问题。 **五、Nginx 1.12.2 版本特点** Nginx 1.12.2 版本在性能上进行了优化,增强了稳定性,并修复了一些已知问题。对于反向代理功能,此版本可能包括了更高效的数据传输、更...
配置文件`nginx.conf`是Nginx的核心,包含了全局块、events块、http块、server块和location块等。通过合理配置这些区块,可以实现Nginx的性能优化。 - **全局块**: 设置Nginx服务器的全局配置,如用户组、工作进程...
2. **服务器头信息伪装**:Nginx允许修改HTTP响应头中的Server字段,从而隐藏服务器的真实身份,增强安全性。 3. **DDoS防护**:结合防火墙工具如iptables,Nginx可以有效地屏蔽那些频繁访问Web页面的IP地址,防止...
如果返回的`Server`字段显示`nginx/1.14.0`或更高版本,则表示成功升级。 ### 2. 修改Nginx配置 在Nginx配置文件中启用HTTP/2服务端推送,你需要找到处理特定类型的请求(例如PHP文件)的location块,并添加`...
Nginx在决定请求由哪个server块执行时,主要关注的是server块中的listen和server_name两个字段 listen指令 listen字段定义server响应的ip和端口,如果没有明确配置listen字段,默认监听0.0.0.0:80(root)或者0.0.0.0:...