summaryrefslogtreecommitdiffhomepage
path: root/src/nxt_http_route.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2020-11-17Router: matching regular expressions support.Axel Duch1-13/+86
2020-10-07Router: fixed "not empty" pattern matching.Valentin Bartenev1-4/+0
The "!" pattern should be opposite to "", i.e. match only non-empty values. But after 3c00af54b937 it was equal to "!*", which is wrong.
2020-08-28Router: fixed "pass" to upstreams.hongzhidao1-1/+5
Messed up return values in nxt_upstream_find() caused error in applying any configuration with a valid "pass" value in router configuration pointing to upstream. That wasn't the case in "listeners" objects, where the return value wasn't checked. Also, it caused segfault in cases where the "pass" option was configured with variables and resulting value was pointing to a non-existent upstream. Added missing return checks as well to catch possible memory allocation errors. The bug was introduced in d32bc428f46b. This closes #472 issue on GitHub.
2020-08-13Fixed typo in return value check.Valentin Bartenev1-1/+1
Found by Coverity (CID 361277).
2020-08-13Basic variables support.Valentin Bartenev1-71/+136
2020-07-24Minor changes and renaming an NJS artifact to NXT.Axel Duch1-3/+3
This is partially related to #434 issue on Github. Thanks to 洪志道 (Hong Zhi Dao).
2020-07-10Router: route patterns multi wildcards fix.Axel Duch1-3/+6
Matching 'start' and 'end' position now adjusted to avoid false matching. This is related to #434 issue on Github. Thanks to 洪志道 (Hong Zhi Dao).
2020-07-04Router: route patterns multi wildcards support.Axel Duch1-113/+205
2020-05-15Router: removed two unused assignments.Valentin Bartenev1-3/+0
This should resolve some static analyzers warnings.
2020-05-14Router: decode uri and args.Axel Duch1-57/+221
2020-05-14PHP: implemented "targets" option.Valentin Bartenev1-3/+18
This allows to specify multiple subsequent targets inside PHP applications. For example: { "listeners": { "*:80": { "pass": "routes" } }, "routes": [ { "match": { "uri": "/info" }, "action": { "pass": "applications/my_app/phpinfo" } }, { "match": { "uri": "/hello" }, "action": { "pass": "applications/my_app/hello" } }, { "action": { "pass": "applications/my_app/rest" } } ], "applications": { "my_app": { "type": "php", "targets": { "phpinfo": { "script": "phpinfo.php", "root": "/www/data/admin", }, "hello": { "script": "hello.php", "root": "/www/data/test", }, "rest": { "root": "/www/data/example.com", "index": "index.php" }, } } } }
2020-05-14Configuration: URI encoding in the "pass" option.Valentin Bartenev1-29/+83
This is useful to escape "/" in path fragments. For example, in order to reference the application named "foo/bar": { "pass": "applications/foo%2Fbar" }
2020-03-30Configuration: support for rational numbers.Valentin Bartenev1-1/+1
2020-03-21Implemented "location" option for "return" action.Valentin Bartenev1-2/+36
This allows to specify redirects: { "action": { "return": 301, "location": "https://www.example.com/" } }
2020-03-27Implemented "return" action.Valentin Bartenev1-0/+12
The "return" action can be used to immediately generate a simple HTTP response with an arbitrary status: { "action": { "return": 404 } } This is especially useful for denying access to specific resources.
2020-03-27Initialization of the action object made more consistent.Valentin Bartenev1-3/+3
2020-03-06Round robin upstream added.Igor Sysoev1-0/+6
2020-03-04Refactored nxt_http_action.Igor Sysoev1-16/+12
2020-03-11Fixed negative patterns combined with address rules.Axel Duch1-6/+40
2020-03-03Added a "fallback" option to be used with the "share" action.Valentin Bartenev1-23/+49
It allows proceeding to another action if a file isn't available. An example: { "share": "/data/www/", "fallback": { "pass": "applications/php" } } In the example above, an attempt is made first to serve a request with a file from the "/data/www/" directory. If there's no such file, the request is passed to the "php" application. Fallback actions may be nested: { "share": "/data/www/", "fallback": { "share": "/data/cache/", "fallback": { "proxy": "http://127.0.0.1:9000" } } }
2019-12-24Router: introducing routing on listener address.Axel Duch1-4/+31
2019-12-24Router: introducing routing on client address.Axel Duch1-4/+239
2019-11-14Initial proxy support.Igor Sysoev1-2/+18
2019-11-14Replacing pass with action.Igor Sysoev1-71/+123
2019-09-19Basic support for serving static files.Valentin Bartenev1-8/+20
2019-07-24Added routing based on request scheme.Axel Duch1-0/+36
Scheme matches exact string “http” or “https”.
2019-06-10Cookie-based routing should be case-sensitive.Igor Sysoev1-5/+3
2019-05-30Added routing based on cookies.Igor Sysoev1-1/+218
2019-05-30Added routing based on arguments.Igor Sysoev1-15/+208
2019-05-30Handling routing errors.Igor Sysoev1-27/+32
2019-05-30Added routing based on header fields.Igor Sysoev1-61/+338
2019-05-30Fixed segfault with empty routes array.Igor Sysoev1-9/+6
2019-05-30Fixed segfault with empty rule array.Igor Sysoev1-3/+3
2019-04-12Simplified cycles in nxt_http_route_rule().Valentin Bartenev1-40/+24
2019-04-10Added support for wildcards in the middle of match patterns.Igor Sysoev1-21/+105
2019-02-27Initial routing implementation.Igor Sysoev1-0/+849