perl

'perl' 指令使得可以在 NGINX 中使用 Perl 脚本来处理请求。 — NGINX HTTP Core

perl
locationlimit_except
语法perl subroutine_name;
默认值none
上下文location, limit_except
模块NGINX HTTP Core
参数1

说明

'perl' 指令允许将 Perl 代码直接嵌入到 NGINX 配置中,以在请求通过服务器时对请求进行处理。通过定义 Perl 子例程,该指令在请求处理上提供了更大的灵活性和控制,例如修改请求头、生成动态响应或根据请求参数实现自定义逻辑。该指令可以接受一个参数,通常指定要执行的 Perl 子例程的名称。这种集成对于高级路由、内容处理或在不依赖外部脚本或应用程序开销的情况下实现复杂应用逻辑特别有用。 配置后,Perl 子例程将在匹配定义上下文(location 或 limit_except)的每个请求上运行,使其成为需要基于传入请求实现动态行为环境的强大工具。处理模型允许同步执行,这意味着在处理该请求期间,其他请求可能无法被处理,直到 Perl 代码完成执行。如果管理不当,这可能会影响性能,尤其是在高负载情况下。此外,Perl 代码抛出的任何错误都可能导致 500 Internal Server Error 响应,因此在 Perl 脚本中进行适当的错误处理非常重要。

配置示例

location /example {
    perl my_perl_handler;
}

确保在 NGINX 中安装并正确配置 Perl 模块。

在高流量环境中使用 Perl 脚本时,请注意对性能的影响,因为它们可能会导致阻塞。

确保子例程名称与您在 Perl 代码中定义的名称一致。