【问题标题】:How to handle Nginx internal request or not如何处理 Nginx 内部请求
【发布时间】: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


【解决方案1】:

下面的ngx.req.is_internal()就是答案。

https://github.com/openresty/lua-nginx-module#ngxreqis_internal

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 2017-02-24
    • 2018-08-25
    • 2019-05-08
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    相关资源
    最近更新 更多