【问题标题】:How to put file content to http request header by using Apache httpd如何使用 Apache httpd 将文件内容放入 http 请求标头
【发布时间】:2018-02-14 20:32:43
【问题描述】:

我可以向 /foo 发送 http 请求,在请求中添加标头 plaa,最后使用以下 Apache httpd 配置(foobar.conf 文件)将请求重定向到 /bar...

<LocationMatch "/foo">

ProxyPass http://localhost/bar
ProxyPassReverse http://localhost/bar
ProxyPassReverse https://localhost/bar

RequestHeader set plaa "hello"

</LocationMatch>

如何将 plaa 标头的值作为 base64 编码的文件内容?

我可以想象我可以这样做......

sed -i s_plaa_$(cat file.txt | base64)_g foobar.conf

但我想知道是否有任何内置方法可以使用 Apache 来做到这一点。

【问题讨论】:

    标签: apache


    【解决方案1】:

    Apache httpd 不支持从文件中读取 http 头内容。

    这是在 Unix 环境中手动执行此操作的快速修复。

    (如果您愿意,可以轻松地将以下步骤放入脚本文件。)

    第 1 步。

        Go to 'location_where_apache_httpd_is_running:/etc/httpd/conf.d'
    

    第 2 步。为标头值创建文件。

        echo 'your base are belong to us' > header_value.txt
    

    步骤 3. 将以下行写入文件 apache_app.conf_base。

        Listen 8001
        ProxyPass /foobar/ http://localhost:8002/foobar
        ProxyPassReverse /foobar/ http://localhost:8002/foobar
        Header add App-Header "value"
        RequestHeader App-Header "value"
    

    第 4 步。用 base64 编码的 header_value.txt 替换“值”字符串。

        sed s_value_$(echo $(cat message.json | tr -d "\n\r") | base64 -w 0)_g apache_app.conf_base > apache_app.conf
    

    步骤 5. 重启 httpd

        service httpd restart
    

    现在 apache httpd 基于 apache_app.conf 做以下事情。

    1. 将请求从 localhost:8001/foobar 重定向到 localhost:8002/foobar
    2. 附加标头“App-Header”,其值为来自文件 header_value.txt 的 base64 编码行。

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 2020-06-30
      • 2021-08-16
      • 2017-02-27
      • 2018-11-29
      • 2017-12-07
      • 1970-01-01
      • 2013-10-01
      • 1970-01-01
      相关资源
      最近更新 更多