【发布时间】:2021-08-08 11:13:10
【问题描述】:
我使用 nginx 作为代理服务器,我只设置了 proxy_intercept_errors on; 和 error_page 指令 error_page 400 /400.html; location = /400.html { root /path/to/error; }。
所以后端服务器tomcat(servlet)有时 sendError 喜欢 HttpServletResponse.sendError(404); ,该请求可能会返回到 nginx 并重定向到 400.html。
在这种情况下,我需要处理内部重定向到 400。
我的问题是我使用一个 lua 脚本来检查所有收入请求中的一些内容,所以我需要告诉我的 lua 在内部请求到来时跳过检查。
是否可以识别内部请求?
【问题讨论】:
-
也许您正在寻找
proxy_intercept_errors指令? -
@IvanShatsky 我已经设置好了
proxy_intercept_errors on;,所以 nginx 重定向到 400 静态 html 页面,正如我上面所说的,类似于内部请求,我的问题是我需要处理该内部请求。 -
你没有解释你想如何处理那个请求,如果你想对tomcat 404响应进行一些自定义处理,请使用
error_page指令(error_page 404 ...)。 -
@IvanShatsky 谢谢。现在我对我的问题进行了很多修改并改进了更多信息,你能再检查一下吗
-
如果我正确理解您的要求,您需要使用
ngx.req.is_internal()函数。
标签: nginx servlets lua proxypass proxy-server