У меня проблемы с моим регулярным выражением, не знаю, что с ним не так. он возвращает URi с orls/f
вместо того orls/f?p=4550
. Когда я прохожу https://secure.toto02.com/orls/myservice/f?p=4550
мой файл conf находится ниже
location ~ "^/([a-zA-Z]+)/myservice/(.+)$" {
error_log /var/log/nginx/error-server.log notice;
rewrite_log on;
#proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.3.45:8080/orls/$2;
proxy_redirect http://192.168.3.45:8080/orls/ https://secure.toto02.com/$1/myservice/ ;
}
Кто-нибудь может помочь?
Захват местоположения не будет охватывать строку запроса. Вы должны вручную включить его через $is_args
и $args
такие переменные:
proxy_pass http://192.168.3.45:8080/orls/$2$is_args$args;
См. Ответ @ kolbyjack (намного лучше): https://stackoverflow.com/questions/8130692/with-nginx-how-to-forward-query-parameters