我一直在使用openresty nginx为简单的请求转发的目的,它是工作的预期,我转发每个传入的请求到另一个URL使用下面的代码:
location /app/ {
proxy_pass https://example.com/abc/;
proxy_read_timeout 60s;
proxy_pass_header Server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header X-Frame-Options "SAMEORIGIN" always;
并且我用下面的代码记录每个POST请求:
server {
log_format post_logs '[$time_local] "$request" $status '
'$body_bytes_sent "$http_referer" '
'"$http_user_agent" [$request_body]';
}
location /app/ {
access_log logs/post.log post_logs;
}
现在,我的要求是,在转发每个请求之前,我想过滤后请求体数据的特定字符串/关键字,它应该只转发到代理URL https://example.com/abc/,如果在后数据中找到特定字符串/关键字。
我做了一些研究,但没有找到任何东西,帮助我实现这一点,有人能帮忙吗?
1条答案
按热度按时间kg7wmglp1#
不太了解Lua,但希望这能有所帮助:
灵感来源:
Filter request on proxy_pass using lua on nginx
How to check if matching text is found in a string in Lua?