hi-nginx-1.4.9正式发布,支持javascript后端开发
hi-nginx-1.4.9已经发布。
更新:
- 支持javascript后端开发
- 修复脚本搜索的一个bug
从这一版开始,hi-nginx开始支持javascript,这意味着把javascript应用于后端开发,将不再只有nodejs这唯一的途径和方法。由于java本身对javascript的极好支持,使得在hi-nginx中,可以直接在javascript脚本中使用java——相当于把java嵌入了javascript。
为了开启javascript支持,你只需要开启java支持即可:--enable-http-hi-java=YES。
例子:
if (typeof (Mustache) == 'undefined') { load('https://cdn.bootcss.com/mustache.js/2.3.0/mustache.min.js') } var list = java.util.Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9); var template = "{{#list}}* {{.}}\n{{/list}}" var key = 'test', output if (hi_req.cache.containsKey(key)) { output = hi_req.cache.get(key) } else { output = Mustache.render(template, {'list': JSON.parse(list.toString())}) hi_res.cache.put(key, output) } hi_res.headers.get('Content-Type').set(0, 'text/plain;charset=UTF-8') hi_res.content = output hi_res.status = 200;
比较:
helloworld:
fedora 25,4g,2核i5,笔记本
ab -c 1000 -n 500000 压力测试,RPS:
- nodejs(6.12.0):无法完成测试
- hi-nginx-javascript :均值13000+
ab -c 1000 -n 100000 压力测试,RPS:
- nodejs(6.12.0):偶尔完成测试,最好成绩接近9000+,均值6000-9000
- hi-nginx-javascript :均值14000+
用法:
hi_java_classpath "-Djava.class.path=.:/usr/local/nginx/java:/usr/local/nginx/java/hi-nginx-java.jar"; hi_java_options "-server -d64 -Xms512m -Xmx512m -Xmn170m -Dnashorn.args=--global-per-engine"; hi_java_servlet_cache_expires 300s; hi_java_servlet_cache_size 10; hi_java_version 8; location / { hi_need_cache off; hi_cache_expires 5s; hi_need_kvdb off; hi_kvdb_size 10; hi_kvdb_expires 5s; hi_need_cookies on; hi_need_headers on; hi_need_session on; hi_session_expires 300s; hi_javascript_lang javascript; hi_javascript_extension js; #hi_javascript_script javascript/index.js; hi_javascript_content "hi_res.content='hello,world';hi_res.status=200;"; }
Server Software: nginx/1.14.0 Server Hostname: 127.0.0.1 Server Port: 8086 Document Path: / Document Length: 11 bytes Concurrency Level: 1000 Time taken for tests: 34.457 seconds Complete requests: 500000 Failed requests: 0 Total transferred: 139000000 bytes HTML transferred: 5500000 bytes Requests per second: 14510.69 [#/sec] (mean) Time per request: 68.915 [ms] (mean) Time per request: 0.069 [ms] (mean, across all concurrent requests) Transfer rate: 3939.43 [Kbytes/sec] received
仓库:https://github.com/webcpp/hi-nginx
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
现代化自定制 - 列表和库部分
博客地址:http://blog.csdn.net/FoxDave在现代化网站时一个重要方面就是要去了解在网站上使用的自定制都有哪些,因为不是所有已存在的自定制还能正常工作。一个我们常常会遇到的典型例子就是网站中的用来展示一些如法律声明等公司信息的横幅展示。这一般会通过在页面中嵌入JavaScript代码来实现用户自定义操作,这种内容将不会显示在现代化页面上。绕个弯解决这个问题,我们可以将展示条通过SharePoint Framework应用自定义扩展来实现并部署到租户或网站上。本文主要介绍一些对于列表和库的现代化用户接口不兼容的自定义并概要阐述如何修复它们。 列表和库中的自定义 这部分我们主要专注于列表和库的自定义,当SharePoint检测到某个列表或库具有不兼容的自定义内容的时候,它会自动退回到经典用户界面。因此如果我们想获得完全的现代化用户接口,就需要解决这些自定义设置。 JSLinkSharePoint中一个非常普遍的控制字段如何展示的模型就是使用JSLink。基本上,JSLink允许我们插入JavaScript脚本去渲染字段。在现代化用户接口中,类似的自定制可以在列表视图页...
- 下一篇
2018CSTC web2 writeup
全国网络空间安全技术大赛,比赛地址http://cstc.xatu.edu.cn/ 这次和小伙伴参加了线上初赛,再次被吊打,除了签到和这题Web2,连Web1就卡着一直没做出来/(ㄒoㄒ)/~~ 题目地址: http://117.34.116.192/ 打开题目链接,首先会自动跳转到一个看似有文件包含的url界面 image.png 界面的内容是一个登陆页面 image.png 先尝试登陆页面的登陆功能,查看是否可能存在sql注入,结果发现这个登陆页面并没有和后端进行交互,登陆功能应该只是一个伪装 于是对疑似存在文件包含的url进行尝试,发现存在任意目录文件查看 117.34.116.192/index.php?file=/etc/passwd image.png 心想题目不可能这么简单,果然在查看了许多可能的文件后,都没有发现flag的身影 这时候思路开始变化,尝试伪协议、包含web服务器日志、包含/proc/self/environ等,,但是都失败了,估计对访问权限做过控制 LFI、RFI思路可以参考https://blog.csdn.net/xysoul/article/deta...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- 设置Eclipse缩进为4个空格,增强代码规范
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池