File: README.txt

package info (click to toggle)
trafficserver 9.2.5%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 53,008 kB
  • sloc: cpp: 345,484; ansic: 31,134; python: 24,200; sh: 7,271; makefile: 3,045; perl: 2,261; java: 277; pascal: 119; sql: 94; xml: 2
file content (72 lines) | stat: -rw-r--r-- 2,507 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
Boom is example of how to use a global plugin to attach transaction plugins to some of the transactions.

Boom is used to serve a custom page whenever the server responds with anything other than 200.


Usage:

To use Boom, put the plugin into the plugins directory and add the following line to plugins.config file:


/path/to/boom.so base_directory status_list


base_directory_path points to folder that contains custom error pages. The error pages names correspond to the errors, in the following ways:

NNN.html - error page that is specific to error NNN, e.g. "404.html" is specific to HTTP 404

Nxx.html - error page that is generic to error family Nxx, e.g. "4xx.html" can be served for HTTP 401, 402, 403 and so on

default.html - error page that is the most general fallback.


Custom page resolution order

Boom proceeds from the most specific to the most generic custom error page. The resolution comprises 5 phases:

Phase 1 - exact match is attempted
Phase 2 - status family match is attempted
Phase 3 - boom attempts to serve default.html file
Phase 4 - boom serves a compiled in fallback message.

To illustrate the resolution, lets assume the following scenario:

- plugins.config contains the line

/path/boom.so /path/errors 404,4xx,5xx

- /path/errors contains files

  /path/errors/404.html
  /path/errors/4xx.html
  /path/errors/3xx.html
  /path/errors/5xx.html

Lets consider the following scenarios:

HTTP 404

Phase 1 - exact match is attempted:
Since status code 404 is specified in the status_list, AND /path/errors/404.html is present, boom will serve /path/errors/404.html

HTTP 403

Phase 1 - exact match is attempted:
Since status 403 is not specified in the error list, boom skips to error family match

Phase 2 - error family match is attempted:
Since status wildcard 4xx is specified in the error list AND /path/errors/4xx.html is present, boom will serve /path/errors/4xx.html


HTTP 500
Phase 1 - exact match is attempted:
Since status 500 is not specified in the errors_list, boom skips to error family match

Phase 2 - error family match is attempted:
File /path/errors/5xx.html is present, however status wildcard 5xx is NOT specified. Therefore boom skips to general fallback match.

Phase 3 - general fallback match is attempted:
Since file /path/errors/default.html is not present, boom skips to the compiled in fallback

Phase 4 - compiled in fallback.
boom responds with the compiled in message "<html><body><h1>Your network will be back soon</h1></body></html>"