需求:
用 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;
测试验证:
日志记录: