gpt4 book ai didi

apache - 如何对apache header进行base64编码?

转载 作者:行者123 更新时间:2023-12-02 09:51:33 27 4
gpt4 key购买 nike

我使用 apache 作为前端 http 代理。我需要将带有特定环境变量值的 header 发送到所有代理请求。像这样:

RequestHeader set myheader %{FOO}e

问题是环境变量 FOO 中的值必须是 base64 编码的。是否可以动态对该 header 值进行 b64 编码?

mod_重写?子请求?自定义模块? ...

顺便说一句,环境变量是由另一个 apache 模块创建的,不幸的是我无法修复它。

最佳答案

我明白了。使用 mod_rewrite 从外部程序读取/写入 stdin/stdout,如下所示:

ProxyRequests on
RewriteEngine on

# 1
RewriteMap base64map "prg:/bin/b64e"

# 2
RewriteRule .* - [E=WIC:${base64map:%{QUERY_STRING}},NE]

# 3
RequestHeader set x-b64encoded "%{ENV:WIC}e"

# 4
RewriteRule ^proxy/.*$ http://localhost:9999 [P]
  1. 创建一个名为 base64map 的重写映射,它运行可执行文件 (/bin/b64e),读取标准输入并在标准输出上进行编码。可执行文件在 apache 启动时加载,您必须循环读取 stdin 并将其传递到/bin/base64 才能正常工作
  2. 重写规则将查询字符串(或任何您想要的字符串)传递到名为 base64map 的映射。输出用于将 apache 变量 WIC 设置为编码值。
  3. 请求 header x-b64encoded 是根据 WIC 中的值创建的为了正确读取 WIC 变量,我们必须将语法更改为 ENV:WIC
  4. 最后,请求将被代理到目标,并且 header 会自动包含在请求中。

关于apache - 如何对apache header进行base64编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21032461/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com