206 lines
6.1 KiB
JSON
206 lines
6.1 KiB
JSON
{
|
|
"apps": {
|
|
"http": {
|
|
"servers": {
|
|
"apx.apxtri.farm.ants": {
|
|
"listen": [":80",":443"],
|
|
"routes": [
|
|
{
|
|
"match": [{
|
|
"path": ["/trk/*"]
|
|
}],
|
|
"handle": [
|
|
{
|
|
"handler": "subroute",
|
|
"routes": [
|
|
{
|
|
"match": [{
|
|
"path": ["/trk/redirect"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "static_response",
|
|
"status_code": 301,
|
|
"headers": {
|
|
"Location": ["{http.request.uri.query.url}"]
|
|
}
|
|
}]
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/trk/*"]
|
|
}],
|
|
"handle": [
|
|
{
|
|
"handler": "rewrite",
|
|
"uri": "/{http.request.uri.path_elements.1}"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/apxtri/Checkjson.js"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/farm-ants/apxtri/apxtri/models/"
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/setup.sh"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/adminapi/apxtri/setup/"
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path_regexp": {
|
|
"pattern": "^/([^/]+)/(setup.*\\.tar\\.gz)$"
|
|
}
|
|
}],
|
|
"handle": [{
|
|
"handler": "rewrite",
|
|
"uri": "/{http.matchers.path_regexp.1}/backups/{http.matchers.path_regexp.2}"
|
|
},
|
|
{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/farm-ants/"
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path_regexp": {
|
|
"pattern": "/objectimg/(.*)/img/"
|
|
}
|
|
}],
|
|
"handle": [{
|
|
"handler": "rewrite",
|
|
"uri": "/{http.matchers.path_regexp.1}"
|
|
},
|
|
{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/data/apxtri/objects/"
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/cdn/*"]
|
|
}],
|
|
"handle": [
|
|
{
|
|
"handler": "rewrite",
|
|
"strip_path_prefix": "/cdn"
|
|
},
|
|
{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/data/apxtri/objects/wwws/cdn/"
|
|
}
|
|
],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/api/*"]
|
|
}],
|
|
"handle": [
|
|
{
|
|
"handler": "rewrite",
|
|
"strip_path_prefix": "/api"
|
|
},
|
|
{
|
|
"handler": "reverse_proxy",
|
|
"upstreams": [{
|
|
"dial": "localhost:3021"
|
|
}]
|
|
}
|
|
],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/socket/*"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "reverse_proxy",
|
|
"upstreams": [{
|
|
"dial": "127.0.0.1:3031"
|
|
}],
|
|
"headers": {
|
|
"request": {
|
|
"set": {
|
|
"Upgrade": ["{http.request.header.Upgrade}"],
|
|
"Connection": ["upgrade"]
|
|
}
|
|
}
|
|
}
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/apidoc"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "static_response",
|
|
"status_code": 301,
|
|
"headers": {
|
|
"Location": ["/apidoc/"]
|
|
}
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/apidoc/", "/apidoc/*"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/data/apxtri/objects/wwws/apidoc/",
|
|
"index_names": ["index.html"]
|
|
}],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"path": ["/src/*"]
|
|
}],
|
|
"handle": [
|
|
{
|
|
"handler": "rewrite",
|
|
"strip_path_prefix": "/src"
|
|
},
|
|
{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/data/apxtri/objects/wwws/apx/src/",
|
|
"index_names": ["index.html", "index_fr.html", "index_en.html"]
|
|
}
|
|
],
|
|
"terminal": true
|
|
},
|
|
{
|
|
"match": [{
|
|
"host": ["apx.apxtri.farm.ants"]
|
|
}],
|
|
"handle": [{
|
|
"handler": "file_server",
|
|
"root": "/media/phil/usbfarm/apxtowns/data/apxtri/objects/wwws/apx/dist",
|
|
"index_names": ["index.html", "index_fr.html", "index_en.html"]
|
|
}],
|
|
"terminal": true
|
|
}
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |