The header_filter is a simple plugin for filtering out headers from requests (or responses). Typical configuration is done either with a global configuration, in plugin.config:

header_filter.so /usr/local/etc/hdr_filters.conf

Or, alternatively, in a per-remap rule configuration

map http://a.com/ http://b.com @plugin=header_filter.so @pparam=hdr_filters.conf

Even if you don't have a global configuration, if your remap rules schedules actions in hooks other than during remap, you must also add the header_filter.so to the plugin.config (see above), but without args:

header_filter.so

The configuration files looks like

[READ_REQUEST_HDR]
    X-From-Someone
    Cookie

[READ_RESPONSE_HDR]
    X-From-Server
    Set-Cookie

[SEND_RESPONSE_HDR]
    X-Fie "Test"    # Match the entire string
    X-Foo /Test/    # Match the (Perl) regex
    X-Bar [Test*    # Match the prefix string
    X-Fum *Test]    # Match the postfix string

Comments are prefixed with #, and in most cases, the regular expression matching is the best choice (very little overhead). The pattern matches can also take an option '!' to reverse the test. The default action is to delete all headers that do (not) match the pattern. E.g.

[SEND_REQUEST_HDR]
    X-Fie   /test/
    X-Foo ! /test/i

The final "i" qualifier (works on all pattern matches) forces the match or comparison to be made case insensitive (just like in Perl).

It's also possible to replace or add headers, using the = and + operators. For example

[SEND_REQUEST_HDR]
    Host =www.example.com=
    X-Foo +ATS+

This will force the Host: header to have exactly one value, www.example.com, while X-Foo will have at least one header with the value ATS, but there could be more instances of the header from the existing header in the request.

Possible hooks are

 READ_REQUEST_HDR
 SEND_REQUEST_HDR
 READ_RESPONSE_HDR
 SEND_RESPONSE_HDR

If not specified, the default hook to add the rules (headers to filter) is READ_REQUEST_HDR. It's completely acceptable (and useful) to configure a remap rule to delete headers in a later hook (e.g. when reading a response from the server). This is what actually makes the plugin even remotely useful.