on master help sign in
doc: [fix] WARNING: Could not lex literal_block as "json"

docs/admin/filtron.rst:24: \ WARNING: Could not lex literal_block as "json". Highlighting skipped. Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>

commit0a7479f1942a9e5fa63f55eda0977ce777088c71 authorMarkus Heiser <markus.heiser@darmarit.de> dateWed 4 Dec 2019, 17:30 (7 years ago) parentaf2cae6
1 file changed+93−62
docs/admin/filtron.rst+93−62
docs/admin/filtron.rst+93−62
@@ -23,68 +23,99 @@ An example configuration can be find below. This configuration limits the access
2323
2424.. code:: json
2525
26− [
27− {
28− "name": "search request",
29− "filters": ["Param:q", "Path=^(/|/search)$"],
30− "interval": <time-interval-in-sec>,
31− "limit": <max-request-number-in-interval>,
32− "subrules": [
33− {
34− "name": "roboagent limit",
35− "interval": <time-interval-in-sec>,
36− "limit": <max-request-number-in-interval>,
37− "filters": ["Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)"],
38− "actions": [
39− {"name": "block",
40− "params": {"message": "Rate limit exceeded"}}
41− ]
42− },
43− {
44− "name": "botlimit",
45− "limit": 0,
46− "stop": true,
47− "filters": ["Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"],
48− "actions": [
49− {"name": "block",
50− "params": {"message": "Rate limit exceeded"}}
51− ]
52− },
53− {
54− "name": "IP limit",
55− "interval": <time-interval-in-sec>,
56− "limit": <max-request-number-in-interval>,
57− "stop": true,
58− "aggregations": ["Header:X-Forwarded-For"],
59− "actions": [
60− {"name": "block",
61− "params": {"message": "Rate limit exceeded"}}
62− ]
63− },
64− {
65− "name": "rss/json limit",
66− "interval": <time-interval-in-sec>,
67− "limit": <max-request-number-in-interval>,
68− "stop": true,
69− "filters": ["Param:format=(csv|json|rss)"],
70− "actions": [
71− {"name": "block",
72− "params": {"message": "Rate limit exceeded"}}
73− ]
74− },
75− {
76− "name": "useragent limit",
77− "interval": <time-interval-in-sec>,
78− "limit": <max-request-number-in-interval>,
79− "aggregations": ["Header:User-Agent"],
80− "actions": [
81− {"name": "block",
82− "params": {"message": "Rate limit exceeded"}}
83− ]
84− }
26+ [{
27+ "name":"search request",
28+ "filters":[
29+ "Param:q",
30+ "Path=^(/|/search)$"
31+ ],
32+ "interval":"<time-interval-in-sec (int)>",
33+ "limit":"<max-request-number-in-interval (int)>",
34+ "subrules":[
35+ {
36+ "name":"roboagent limit",
37+ "interval":"<time-interval-in-sec (int)>",
38+ "limit":"<max-request-number-in-interval (int)>",
39+ "filters":[
40+ "Header:User-Agent=(curl|cURL|Wget|python-requests|Scrapy|FeedFetcher|Go-http-client)"
41+ ],
42+ "actions":[
43+ {
44+ "name":"block",
45+ "params":{
46+ "message":"Rate limit exceeded"
47+ }
48+ }
8549 ]
86− }
87− ]
50+ },
51+ {
52+ "name":"botlimit",
53+ "limit":0,
54+ "stop":true,
55+ "filters":[
56+ "Header:User-Agent=(Googlebot|bingbot|Baiduspider|yacybot|YandexMobileBot|YandexBot|Yahoo! Slurp|MJ12bot|AhrefsBot|archive.org_bot|msnbot|MJ12bot|SeznamBot|linkdexbot|Netvibes|SMTBot|zgrab|James BOT)"
57+ ],
58+ "actions":[
59+ {
60+ "name":"block",
61+ "params":{
62+ "message":"Rate limit exceeded"
63+ }
64+ }
65+ ]
66+ },
67+ {
68+ "name":"IP limit",
69+ "interval":"<time-interval-in-sec (int)>",
70+ "limit":"<max-request-number-in-interval (int)>",
71+ "stop":true,
72+ "aggregations":[
73+ "Header:X-Forwarded-For"
74+ ],
75+ "actions":[
76+ {
77+ "name":"block",
78+ "params":{
79+ "message":"Rate limit exceeded"
80+ }
81+ }
82+ ]
83+ },
84+ {
85+ "name":"rss/json limit",
86+ "interval":"<time-interval-in-sec (int)>",
87+ "limit":"<max-request-number-in-interval (int)>",
88+ "stop":true,
89+ "filters":[
90+ "Param:format=(csv|json|rss)"
91+ ],
92+ "actions":[
93+ {
94+ "name":"block",
95+ "params":{
96+ "message":"Rate limit exceeded"
97+ }
98+ }
99+ ]
100+ },
101+ {
102+ "name":"useragent limit",
103+ "interval":"<time-interval-in-sec (int)>",
104+ "limit":"<max-request-number-in-interval (int)>",
105+ "aggregations":[
106+ "Header:User-Agent"
107+ ],
108+ "actions":[
109+ {
110+ "name":"block",
111+ "params":{
112+ "message":"Rate limit exceeded"
113+ }
114+ }
115+ ]
116+ }
117+ ]
118+ }]
88119
89120
90121
@@ -101,7 +132,7 @@ It listens on 127.0.0.1:4004 and forwards filtered requests to 127.0.0.1:8888 by
101132
102133Use it along with ``nginx`` with the following example configuration.
103134
104−.. code:: bash
135+.. code:: nginx
105136
106137 location / {
107138 proxy_set_header Host $http_host;