Я использую nginx в качестве загрузочного баллона перед несколькими котами. В своих входящих запросах я закодировал параметры запроса. Но когда запрос поступает в tomcat, параметры декодируются:
входящий запрос к nginx:
curl -i "http://server/1.1/json/T;cID=1234;pID=1200;rF=http%3A%2F%2Fwww.google.com%2F"
входящий запрос на tomcat:
curl -i "http://server/1.1/json/T;cID=1234;pID=1200;rF=http:/www.google.com/"
Я не хочу, чтобы параметры моего запроса трансформировались, потому что в этом случае мой кот выдает ошибку 405.
Моя конфигурация nginx следующая:
upstream tracking {
server front-01.server.com:8080;
server front-02.server.com:8080;
server front-03.server.com:8080;
server front-04.server.com:8080;
}
server {
listen 80;
server_name tracking.server.com;
access_log /var/log/nginx/tracking-access.log;
error_log /var/log/nginx/tracking-error.log;
location / {
proxy_pass http://tracking/webapp;
}
}
В моей текущей конфигурации балансировки нагрузки Apache у меня есть директива AllowEncodedSlashes, которая сохраняет мои закодированные параметры:
AllowEncodedSlashes NoDecode
Мне нужно перейти с Apache на Nginx.
Мой вопрос совершенно противоположен этому вопросу: избегайте экранирования параметров запроса nginx на proxy_pass