![过滤 nginx 流量](https://linux22.com/image/1054259/%E8%BF%87%E6%BB%A4%20nginx%20%E6%B5%81%E9%87%8F.png)
我在 ubuntu 服务器上运行了一个 nginx 服务器。我在服务器上托管了许多网站和数百个页面。我想在用户请求时在每个页面上执行一个 PHP 函数。在所有网站和每个页面上手动添加/调用该函数是不可行的。
在 nginx 中,有没有一种方法可以定义在向用户提供请求之前应该执行哪个 PHP 文件/函数?
答案1
NGINX 不具备这种能力,这是 NGINX 常规功能的一部分。这需要在 PHP 级别发生 - 而不是 nginx - 如果它必须为每个请求运行,它必须在 PHP 或 PHP 应用程序中完成。
您可能能够使用第三方 Lua 模块(除非您使用,否则必须手动编译nginx-extras
)完成的某种类型的 Lua 代码来执行此操作,该模块在处理之前将请求传递给 PHP 后端,但它将与网站及其 Web 应用程序项目分开执行,很可能比您希望的要早(尽管我不是 Lua 模块及其功能方面的专家)。
然而,这不是一个典型的用例,因此这种请求的预处理不是 nginx 设计规范的一部分,并且可能也不容易通过 Lua 模块实现。