博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nginx ngscript 简单使用
阅读量:6647 次
发布时间:2019-06-25

本文共 2193 字,大约阅读时间需要 7 分钟。

备注: 默认没有集成到nginx包里,需要单独安装(推荐使用动态模块的方式进行安装)

1. 安装

wget https://nginx.org/download/nginx-1.13.11.tar.gzhg clone http://hg.nginx.org/njs // njs 模块克隆./configure --add-module=path-to-njs/nginx构建模块make modules  安装模块make install备注:需要一些预备准备  pcre  openssl
 
2. 配置加载模块
load_module modules/ngx_http_js_module.so; // 加载模块,注意顺序#user  nobody;worker_processes  1;events {    worker_connections  1024;}http {    include       mime.types;    default_type  text/html;    sendfile        on;    keepalive_timeout  65;    #gzip  on;    server {        listen       80;        server_name  localhost;        location / {            root   html;            index  index.html index.htm;        }        error_page   500 502 503 504  /50x.html;        location = /50x.html {            root   html;        }    }}
顺序
 
3. 使用指令
js_include ../js/http.js;js_set $foo     foo;js_set $summary summary;server {    listen 8000;    location / {        add_header X-Foo $foo;        js_content baz;    }    location /summary {        return 200 $summary;    }}http.jsfunction foo(req, res) {    req.log("hello from foo() handler");    return "foo";}function summary(req, res) {    var a, s, h;    s = "JS summary\n\n";    s += "Method: " + req.method + "\n";    s += "HTTP version: " + req.httpVersion + "\n";    s += "Host: " + req.headers.host + "\n";    s += "Remote Address: " + req.remoteAddress + "\n";    s += "URI: " + req.uri + "\n";    s += "Headers:\n";    for (h in req.headers) {        s += "  header '" + h + "' is '" + req.headers[h] + "'\n";    }    s += "Args:\n";    for (a in req.args) {        s += "  arg '" + a + "' is '" + req.args[a] + "'\n";    }    return s;}function baz(req, res) {    res.headers.foo = 1234;    res.status = 200;    res.contentType = "text/plain; charset=utf-8";    res.contentLength = 15;    res.sendHeader();    res.send("nginx");    res.send("java");    res.send("script");    res.finish();}
 
4.  测试
sbin/nginx -t sbin/nginx -s reload访问测试地址http://hostip:8000http://hostip:8000/summary
 
测试结果
5. 总结
目前来说已经支持了好多es 语法,如果能够更好的集成nodejs模块节能会更好,同时相比openresty 功能上还是太差了,实际使用上,还是openresty 更好
 
 
6. 参考资料
https://nginx.org/en/docs/http/ngx_http_js_module.htmlhttps://nginx.org/en/docs/njs_about.html
 
 
 
 
 

转载地址:http://bquto.baihongyu.com/

你可能感兴趣的文章
javascript 中XMLHttpRequest 实现前台向后台的交互
查看>>
[tem]线段树练习
查看>>
POJ2677 Tour[DP 状态规定]
查看>>
MySQL使用Union创建视图报错
查看>>
mysql 管理脚本
查看>>
Excel中substitute替换函数的使用方法
查看>>
使用强大的可视化工具redislive来监控我们的redis
查看>>
MyBatis源码解读(2)——MapperProxy
查看>>
Codeforces Round #379 (Div. 2) E. Anton and Tree 缩点 直径
查看>>
Linux IO实时监控iostat命令详解
查看>>
C# 获取Image图片格式
查看>>
MYSQL存储过程,清除指前缀的定表名的数据
查看>>
css中margin-top/margin-bottom失效
查看>>
【转载】数据库大并发操作要考虑死锁和锁的性能问题
查看>>
[莫比乌斯反演]【学习笔记】[旧]
查看>>
CentOS6.8手动安装MySQL5.6
查看>>
OpenCV人脸检測(完整源代码+思路)
查看>>
nginx代理socket tcp/udp
查看>>
js简单Base64编码解码
查看>>
css hack
查看>>