Nginx 使用 ngx_headers_more 模块来增加、删除出站、入站的 Header 信息。
ngx_headers_more 项目主页
默认该模块没有加入到 Nginx 的源码中,要想使用相关功能需要在编译 Nginx 时加入该模块。
本人服务器中的 Nginx 在编译时没有加入该模块,使用 -V 查看当前 Nginx 的编译参数:
1
2
3
4
5
6
7
8
|
[root@z-dig~]# nginx -V
nginx version:www.z-dig.com
built by gcc4.4.720120313(Red Hat4.4.7-16)(GCC)
built with OpenSSL1.0.1e-fips11Feb2013
TLS SNI support enabled
configure arguments:--prefix=/usr/local/nginx--user=www--group=www\
--with-http_ssl_module--with-http_stub_status_module
[root@z-dig~]#
|
从官网下载模块:
1
2
3
4
|
[root@z-dig~]# cd /usr/local/src/
[root@z-dig src]# wget 、https://codeload.github.com/openresty/headers-more-nginx-module/zip/master\
-O./headers-more-nginx-module-master.zip
[root@z-dig src]# unzip headers-more-nginx-module-master.zip
|
重新编译 Nginx 前,请求 www.z-dig.com 的 Header 信息:
1
2
3
4
5
6
7
8
9
10
11
12
|
[root@KVM~]# curl -I www.z-dig.com
HTTP/1.1200OK
Server:www.z-dig.com
Date:Sat,23Apr201611:25:15GMT
Content-Type:text/html;charset=UTF-8
Connection:keep-alive
X-Powered-By:PHP/5.6.17
Vary:Accept-Encoding,Cookie
Cache-Control:max-age=3,must-revalidate
WP-Super-Cache:Served supercache file from PHP
[root@KVM~]#
|
现在重新编译 Nginx ,平滑更新:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
[root@z-dig~]# cd /usr/local/src/nginx
[root@z-dig nginx]# make clean
rm-rf Makefile objs
[root@z-dig nginx]#./configure --prefix=/usr/local/nginx --user=www --group=www \
--with-http_ssl_module--with-http_stub_status_module\
--add-module=/usr/local/src/headers-more-nginx-module-master
[root@z-dig nginx]# make
[root@z-dig nginx]# make install
[root@z-dig nginx]# kill -s USR2 `cat /usr/local/nginx/logs/nginx.pid`
[root@z-dig nginx]# ps -ef|grep nginx
root 2017 1 0Apr21? 00:00:00nginx:master process/usr/local/nginx/sbin/nginx
www 2018 2017 0Apr21? 00:00:30nginx:worker process
root 21717 2017 019:41? 00:00:00nginx:master process/usr/local/nginx/sbin/nginx
www 2171821717 019:41? 00:00:00nginx:worker process
root 2185618312 019:45pts/2 00:00:00grep nginx
[root@z-dig nginx]# kill -s WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin`
[root@z-dig nginx]# ps -ef|grep nginx
root 2017 1 0Apr21? 00:00:00nginx:master process/usr/local/nginx/sbin/nginx
root 21717 2017 019:41? 00:00:00nginx:master process/usr/local/nginx/sbin/nginx
www 2171821717 019:41? 00:00:00nginx:worker process
root 2194318312 019:49pts/2 00:00:00grep nginx
[root@z-dig nginx]# kill -s QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
[root@z-dig nginx]# ps -ef|grep nginx
root 21717 1 019:41? 00:00:00nginx:master process/usr/local/nginx/sbin/nginx
www 2171821717 019:41? 00:00:00nginx:worker process
root 2205018312 019:54pts/2 00:00:00grep nginx
[root@z-dig nginx]#
|
到此 Nginx 已重新编译并平滑升级成功。
在 Nginx 的配置文件中加入代码,将之前请求网站返回 Header 中的 X-Powered-By 和 WP-Super-Cache 删除:
1
2
|
more_clear_headers'X-Powered-By';
more_clear_headers'WP-Super-Cache';
|
1
2
3
4
|
[root@z-dig~]# nginx -t
nginx:the configuration file/usr/local/nginx/conf/nginx.conf syntax isok
nginx:configuration file/usr/local/nginx/conf/nginx.conf test issuccessful
[root@z-dig~]# nginx -s reload
|
再次请求查看效果:
1
2
3
4
5
6
7
8
9
10
|
[root@KVM~]# curl -I www.z-dig.com
HTTP/1.1200OK
Server:www.z-dig.com
Date:Sat,23Apr201612:03:04GMT
Content-Type:text/html;charset=UTF-8
Connection:keep-alive
Vary:Accept-Encoding,Cookie
Cache-Control:max-age=3,must-revalidate
[root@KVM~]#
|
相关推荐
headers-more-nginx-module-0.37.tar
《headers_more_nginx_module_0.34:深入解析Nginx扩展模块的增强功能》 在Web服务器领域,Nginx以其高性能、高并发能力而广受赞誉。而headers_more_nginx_module作为Nginx的一个扩展模块,进一步提升了其在处理...
本文档介绍了2017年11月3日发布的headers-more-nginx-module 。 概要 # set the Server output header more_set_headers 'Server: my-server' ; # set and clear output headers location /bar { more_set_...
- `header_filter_by_lua`: 修改响应头。 - `body_filter_by_lua`: 操作响应体。 四、典型应用场景 4.1 API网关 利用lua-nginx-module可以实现动态路由、限流、鉴权等网关功能。 4.2 数据缓存 结合ngx_lua_shared...
patch -p0 < ../nginx_upstream_check_module-master/check_1.9.2+.patch ./configure --prefix=/usr/local/nginx \ --with-http_ssl_module --with-http_stub_status_module --with-pcre \ --with-...
在`headers_more`配置块中,你可以使用如`add_header`、`set_header`和`more_clear_headers`等指令进行配置。 例如,以下是一个简单的配置示例: ```nginx http { ... server { ... location / { more_set_...
- **Nginx版本**:nginx/1.18.0 - **网络结构**: - **服务器A**:部署在DMZ区域,IP地址为192.168.252.247,可以访问互联网。 - **服务器B**:位于内部网络中,IP地址为192.168.10.247,无法直接访问互联网,但...
- Nginx 的主要配置文件是 `/usr/local/nginx/conf/nginx.conf`,在这个文件中可以定义服务器块,包括监听端口、服务器名称、日志设置等。 - 跨域配置:在服务器块中添加如下代码来允许跨域请求: ``` location ...
前置条件:需要编译 ngx_http_headers_module 模块,才支持 header 头信息操作 add_header 意思为将自定义的头信息的添加到响应头,指令为 add_header name value [always];,可以用在 http {}, server {}, ...
add_header Access-Control-Allow-Headers 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; if ($request_method = 'OPTIONS') { return 204; } ``` ...
- `proxy_set_header`:设置代理服务器头信息,如Host、X-Real-IP和X-Forwarded-For,用于识别真实客户端。 - `proxy_cache_path`:定义缓存路径和参数,例如大小、级别等。 - `proxy_ignore_headers`:忽略特定...
ngx_http_headers_module模块提供了两个重要的指令add_header和expires,来添加 “Expires” 和 “Cache-Control” 头字段,对响应头添加任何域字段。add_header可以用来标示请求访问到哪台服务器上,这个也可以通过...
为了解决这个问题,我们可以利用Nginx的Http_Headers_Module模块,通过`add_header`指令添加必要的响应头。具体配置如下: ```nginx location ~* \.(eot|ttf|woff|svg|otf)$ { add_header Access-Control-Allow-...
总结来说,解决Ajax跨域问题的关键在于设置合适的响应头,而在Nginx服务器上实现这一目标需要对`nginx.conf`或相关站点配置文件进行编辑,添加适当的`add_header`指令。正确配置后,Nginx将允许来自不同源的Ajax请求...
3. `docs`:可能包含Nginx的文档或帮助信息,方便用户查阅。 4. `logs`:存放Nginx运行时的日志文件,包括错误日志和访问日志,这对于调试和监控服务器状态至关重要。 5. `temp`:临时文件目录,Nginx在此存储处理...
这些指令可以在Nginx的配置文件中设置,并在启动时被解析到相应的模块配置结构体中。 **示例**:定义一个简单的指令: ```c static ngx_command_t my_commands[] = { { ngx_string("my_module_value"), ngx_conf...
1. **启用headers模块**:在Apache配置文件`httpd.conf`中,你需要找到`LoadModule headers_module modules/mod_headers.so`这一行,并移除前面的`#`注释符,这样可以启用headers模块,用于设置HTTP响应头。...
- [Nginx HTTP/2模块文档 - `http2_push_preload`指令](http://nginx.org/en/docs/http/ngx_http_v2_module.html#http2_push_preload) - [MDN Web Docs:HTML元素 - link]...