| ATS (Apache Traffic Server) Multiplexer plug-in | |
| ----------------------------------------------- | |
| This is a remap plug-in that allows a request to be multiplexed one or more times | |
| and sent to different remap entries. Both headers and body (in case of POST or | |
| PUT methods, only) are copied into the new requests. | |
| Multiplexer: | |
| 1. adds "X-Multiplexer: original" header into client's request. | |
| 2. copies client's request (bodies are copied by transforming the request) | |
| 3. changes Host header of the copy according to pparam. | |
| 4. changes X-Multiplexer header to "copy". | |
| 5. sends the copied request with TSHttpConnect. | |
| Multiplexer dispatches the request in background without blocking the original | |
| request. Multiplexed responses are drained and discarded. | |
| A global timeout can be overwritten through "multiplexer__timeout" environment variable representing how many nanoseconds to wait. A default 1s timeout is hard-coded. | |
| Please use "multiplexer" tag for debugging purposes. While debugging, multiplexed requests and responses are printed into the logs. | |
| Multiplexer produces the following statistics consumed with traffic_ctl: | |
| - failures: number of failed multiplexed requests | |
| - hits: number of successful multiplexed requests | |
| - requests: total number of multiplexed requests | |
| - time(avg): average time taken between multiplexed requests and their responses | |
| - timeouts: number of multiplexed requests which timed-out | |
| - size(avg): average size of multiplexed responses | |
| Example remap.config: | |
| map http://www.example.com/a http://www.example.com/ @plugin=multiplexer.so @pparam=host1.example.com | |
| map http://www.example.com/b http://www.example.com/ @plugin=multiplexer.so @pparam=host2.example.com | |
| map http://www.example.com/c http://www.example.com/ @plugin=multiplexer.so @pparam=host1.example.com @pparam=host2.example.com | |