В Nginx в настоящее время мы регистрируем $ 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';
Я написал следующий код ruby, чтобы удовлетворить мои требования. Но я не уверен, как интегрировать его в файл 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.
Спасибо