我试图配置Nginx代理将请求传递给另一个服务器,只有当$request_body变量匹配特定的正则表达式.但它不适合我.
server{
listen 80 default;
server_name www.applozic.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $http_host;
if ($request_body ~* (.*)appId(.*)) {
proxy_pass http://apps.applozic.com;
}
}
}
请求正文是::
{
"applicationId": "appId","authenticationTypeId": 1,"enableEncryption": false,"notificationMode": 0,"deviceType": 4,}
最佳答案
最好的我可以告诉你的问题是,在你的if语句执行时,变量$request_body可能没有被读入内存.
建议的替代方案是使用lua支持或compile nginx with the echo modules and run echo_request_body.