我在“C”中编写了自定义 apache 模块,它为 tomcat 的每个请求添加了 header 。计算 header 值很复杂,必须在 apache 上添加它,这就是我编写模块的原因。不可能改变架构。我的模块在 virtualhost 部分配置了额外的:
ProxyPass /test/ "http://localhost:8080/test/"
ProxyPassReverse /test/ "http://localhost:8080/test/"
当我在浏览器中发出请求时,首先发生代理重定向到 tomcat,然后执行我的模块代码。如何更改该顺序? 我知道 https://httpd.apache.org/docs/2.4/developer/hooks.html和“控制 Hook 调用顺序”部分。但是添加代码:
static const char *const aszPost[] = { "mod_proxy_http.c", "http_request.c", NULL};
ap_hook_handler(hook_some_hook, aszPost, NULL, APR_HOOK_MIDDLE);
没有帮助。将 APR_HOOK_MIDDLE 更改为 APR_HOOK_FIRST 没有帮助。
最佳答案
听起来像是 mod_headers 的工作.
关于mod_proxy_http.c 之前的 Apache 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35769563/