在Nginx中,当前我们正在记录$ request。但是我们要更改其中一个请求参数的值。 我们需要记录哈希ID,而不是实际ID。 你能告诉我如何实现吗?
$ request的当前值:
POST /test/userRegistration?id=1234&name=John&address=UK
期望值:
POST /test/userRegistration?id=8c77ec99436a23d2c05a6bd36c64de856&name=John&address=UK
Nginx日志格式:
log_format main '$request $status $request_time';
我已经编写了以下红宝石代码来满足我的要求。但是我不确定如何将其集成到ERB文件中。该log_format声明在 一个ERB文件。
代码:
str = "POST /test/userRegistration?name=John&id=1234&address=UK"
str1 = str.scan(/&id=.+&/)[0]
str1 = str1.chomp('&')
str1 = str1.split("=").last
str1 = Digest::SHA256.hexdigest str1
str2 = "&id="+str1+"&"
str3 = str.sub(/&name=.+&/, str2)
puts str3
请帮助我在ERB文件中编写类似的逻辑。另外,如果我是Ruby新手,请告诉我是否有更好的方法来处理它。
谢谢