nginx的HEAD请求转发

需求:
用 nginx 代理客户端发出的 HEAD请求,直接转发给数据端接口。
转发规则是 HEAD /data_test -> HEAD http://data_test.ppabc.cn/a3/data_test_h5

比如:head请求https://test-data-node.ppabc.cn/data_test?data_id=478581 转发到后端http://test-data_test.ppabc.cn/a3/data_test_h5处理。

请求路线:前端nginx -> test-data-node.ppabc.cn -> 后端nginx -> test-data_test.ppabc.cn。

验证方式:后端 test-data_test.ppabc.cn 上监控日志有 test-news-node 过去的 head 请求,就说明记录成功了。

测试工具:火狐插件HTTP Tool,可以发送 head 请求

之前采用的方式:nginx->nodejs->nginx,nginx的head请求转发到nodejs处理,nodejs再去调用http://test-data_test.ppabc.cn/a3/data_test_h5处理,发现后端日志只能有get请求,head请求没有转发过来。

目前采用的方式:nginx->nginx,nginx的head请求转发到nginx处理,后端nginx 做 rewrite ^/data_test(.*) /a3/data_test_h5$1 last;
nginx配置(test-data-node.ppabc.cn域名):

location /data_test {
if ($request_method = HEAD) {
proxy_pass http://test-data.ppabc.cn_server;
}
}

#HEAD请求转发到upstream处理

后端nginx配置(test.data.ppabc.cn域名):

rewrite ^/data_test(.*) /a3/data_test_h5$1 last;

测试验证:

7

日志记录:

8

 

© 版权声明
THE END
喜欢就支持以下吧
点赞1 分享