ngx_stream_js_module

    默认情况下不构建此模块。可在此处下载和安装说明。

    1. var line = '';
    2. function bar(s) {
    3. var v = s.variables;
    4. return "bar-var" + v.remote_port + "; pid=" + v.pid;
    5. }
    6. function preread(s) {
    7. s.on('upload', function (data, flags) {
    8. var n = data.indexOf('\n');
    9. if (n != -1) {
    10. line = data.substr(0, n);
    11. s.done();
    12. }
    13. });
    14. }
    15. function req_line(s) {
    16. return line;
    17. }
    18. // Read HTTP request line.
    19. // Collect bytes in 'req' until
    20. // request line is read.
    21. // Injects HTTP header into a client's request
    22. var my_header = 'Foo: foo';
    23. function header_inject(s) {
    24. var req = '';
    25. s.on('upload', function(data, flags) {
    26. req += data;
    27. var n = req.search('\n');
    28. if (n != -1) {
    29. var rest = req.substr(n + 1);
    30. req = req.substr(0, n + 1);
    31. s.off('upload');
    32. }
    33. });
    34. }
    35. function access(s) {
    36. if (s.remoteAddress.match('^192.*')) {
    37. s.abort();
    38. return;
    39. }
    40. }

    设置一个将在 阶段调用的 njs 函数。

    设置一个数据过滤器。

    设置一个将在 preread) 阶段调用的 njs 函数。

    设置一个用于指定变量的 njs 函数。

    http://nginx.org/en/docs/stream/ngx_stream_js_module.html