I'm trying to configure NGINX/OpenResty to proxy SOAP calls to 2 different servers based on a string present on the SOAP request.
What I'm able to do: I am able to proxy requests to 2 different servers based on the path the SOAP client is calling:
location /pathA { proxy_pass http://www.ServerA.com/PathA/; } location /pathB { proxy_pass http://www.ServerB.com/PathB/; } What I can't do:
I can't separate the traffic based on the content of the request. The main reason I believe is that I can't correctly assemble the LUA script to extract the information and later use it to proxy the request.
location / { conten_by_lua ' ngx.req.read_body() local match = ngx.re.match(ngx.var.request_body,"STRING TO FIND") if match then proxy_pass http://www.ServerA.com/PathA/; else proxy_pass http://www.ServerB.com/PathB/; how can I achieve this?
I installed OpenResty and LUA is working fine.
I think I read somewhere that if the request is not an HTTP POST ngx.req.read_body() would not work. Is that correct?
Thank you for your help.