hi-nginx-1.4.2发布,多项重要更新
支持多种编程语言混合开发web应用的通用服务器hi-nginx-1.4.2已经发布了。
此次发布包含多项重要更新:
- 支持python2和3,通过编译选项--
with-http-hi-python-version
- 删除boost.python依赖,优化python3兼容性,性能有所提高
- 支持lua和luajit,通过编译选项
--with-http-hi-lua-version
- 为python专门定制了hi.py框架,单一入口,类似bottle或者flask一样,对性能有一定影响,但还是比bottle和flask快得多
- 为php7专门定制了类似hi.py的微型框架,单一入口,类似bottle或者flask,对性能没什么影响
hi.py示例:
1 from hi import hi 2 app =hi() 3 4 @app.route(r'^/test/?$',['GET','POST']) 5 @app.route(r"^/$",['GET']) 6 def hello_world(req,res,param): 7 res.header('Content-Type','text/plain;charset=utf-8') 8 res.content('hello,world') 9 res.status(200) 10 11 @app.route(r"^/client/?$",['GET','POST']) 12 def client(req,res,param): 13 res.content('{}<br>{}<br>{}<br>{}<br>{}'.format(req.client(),req.method(),req.uri(),req.user_agent(),req.param())) 14 res.status(200) 15 16 @app.route(r"^/hello/(?P<who>\w+)?$",['GET']) 17 def hello(req,res,param): 18 res.content('{}={}'.format('who',param['who'])) 19 res.status(200) 20 21 22 23 if __name__ == '__main__': 24 app.run(hi_req,hi_res)
php7示例代码:
require_once 'hi/servlet.php'; require_once 'hi/route.php'; class index implements \hi\servlet { public function handler(\hi\request $req, \hi\response $res) { $app = \hi\route::get_instance(); $app->add('{^/$}', array('GET'), function ($rq, $rs, &$param) { $rs->content = 'hello,world'; $rs->status = 200; }); $app->add('{^/who/(?P<name>\w+)/?$}', array('GET'), function ($rq, $rs, &$param) { $rs->content = 'hello,'.$param['name']; $rs->status = 200; }); $app->add('{^/phpinfo/?$}', array('GET'), function($rq, $rs, &$param) { ob_start(); phpinfo(); $rs->content = ob_get_contents(); $rs->status = 200; ob_end_clean(); }); $app->run($req, $res); } }
简介:
它既是 web 服务器,也是 application 服务器。
它是 NGINX 的超集。
它性能强劲,易于开发,部署方便。
它支持多种语言混合开发 web 应用:
-
C++
-
Python
-
Lua
-
Java
-
PHP

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
-
上一篇
JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖
JAVA之旅(六)——单例设计模式,继承extends,聚集关系,子父类变量关系,super,覆盖 一.单例设计模式 什么是设计模式? JAVA当中有23种设计模式,解决某一问题最有效的方法 单例设计模式 解决一个类在内存中只存在一个对象 想要保证对象唯一该怎么做》 1.为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象 2.还为了让其他程序访问到该类对象,只好在本类中自定义一个对象 3.为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式 这三步怎么怎么实现呢? 1.将构造函数私有化 2.在类中创建一个本类对象 3.提供一个方法可以获取到该对象 然后我们的代码就出来了 /** * 单例模式 * * @author LGL * */ public class Single { // 将构造函数私有化 private Single() { } // 在类中创建一个本类对象 private static Single s = new Single(); // 提供一个方法可以获取到该对象 public static Single getInstance() { retur...
-
下一篇
MongoDB日期类型查询
一、前言 MongoDB 里面的日期类型是没有时区概念的,默认存储的是ISODate("2018-04-02T13:19:16.418Z") 这种格式的零时区时间,比北京时间晚了八个小时。 工作中遇到了一个问题,怎么查询比当前时间小30秒之内的文档记录呢? 时区问题有关系吗?日期类型要怎么比较?怎么表示当前时间呢?日期要怎么实现加减呢? 二、方案 1、时区问题 其实时区问题并不是一个太需要关注的问题,因为MongoDB 提供了一个Javascript shell 窗口,支持 js 的语法。进行日期类型比较的时候,MongoDB 会自动处理 js 日期类型 和 MongoDB 日期类型间的时区问题。 2、怎么表示当前时间 既然我们已经有了 Javascript shell 窗口,那么表示当前时间不是一件轻而易举的事情了吗?直接一个 new Date() 就搞定了! 3、实现日期加减 有了 js 语法,日期的加减也不是特别难想了吧? 1 var now = new Date(); 2 now.setSeconds(now.getSeconds() - 30); 4、实现查询 万事俱备,只欠...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker安装Oracle12C,快速搭建Oracle学习环境
- 面试大杂烩
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS关闭SELinux安全模块
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- MySQL数据库在高并发下的优化方案