#### 这一章主要介绍怎么使用模板,进行后端渲染,主要用到了[lua-resty-template](https://github.com/bungle/lua-resty-template)这个库,直接下载下来,放到lualib里面就行了,推荐第三方库,已经框架都放到lualib目录里面,lua目录放项目源码,比较好管理,可以知道那些是项目的,哪些是第三方库,可复用的
下载解压到lualib目录之后,就算安装完成了,下面来试用一下,更详细的可以到github上面看文档
conf/nginx.conf
```
worker_processes 1;
error_log logs/error.log notice;
events {
worker_connections 1024;
}
http {
lua_package_path "/Users/john/opensource/openresty-web-dev/demo9/lua/?.lua;/Users/john/opensource/openresty-web-dev/demo9/lualib/?.lua;/usr/local/openresty/lualib/?.lua";
server {
listen 80;
server_name localhost;
lua_code_cache off;
location / {
root lua; # 这个很重要,不然模板文件会找不到
default_type "text/html; charset=utf-8";
content_by_lua_file lualib/lite/mvc.lua;
}
location ~ ^/js/|^/css/|\.html {
root html;
}
}
}
```
lua/index.lua
```
local template = require "resty.template"
local _M = {}
function _M.index()
local model = {title = "hello template", content = "<h1>content</h1>"}
-- 1、外部模板文件
-- template.render('tpl/index.html', model)
-- 2、内嵌模板代码
template.render([[
<html>
<head>
<meta charset="UTF-8">
<title>{{ title }}</title>
</head>
<body>
{* content *}
</body>
</html>
]], model)
end
return _M
```
lua/tpl/index.html
```
<html>
<head>
<meta charset="UTF-8">
<title>{{title}}</title>
</head>
<body>
{* content *}
</body>
</html>
```
跟spring mvc 有点像,指定一个 view , model,然后就可以渲染了,模板语法有很多种,{{ 变量 }} 会进行转义,{* 不会转义 *},{% lua 代码 %},跟jsp有点类似,但是很轻量,只有单个文件,更多用法可以到[github](https://github.com/bungle/lua-resty-template)上面看。
浏览器访问 http://localhost/index ,输出content
至此,服务端渲染就搞定了,已经可以开发一些常见的web应用,使用openresty来做前端,然后通过http访问后端的java,也可以在前端,直接访问mysql、redis,只不过mysql只能做一些简单的非事务操作,因为lua-resty-mysql这个库不支持事务,我在github上面问过春哥了,当然如果你直接调用存储过程,把事务放在过程里面控制的话也可以,现在你可以直接写同步的代码风格,就能获得高并发、低消耗,非堵塞等各种好处。
我们已经用openresty开发了pc版,还有微信版的web应用,已经运行几个月了,很稳定,上手也简单,开发的时候不用编译,直接启动一个nginx就搞定,部署的时候只需要10几M的内存,还可以用openresty做各种事情,高并发api、web防火墙,直接跑在nginx里面,简直爽歪歪,有机会跟大家分享。
[示例代码](https://github.com/362228416/openresty-web-dev) 参见demo9部分
分享到:
相关推荐
dodolu 基于openresty的nginx lua modlue的轻量级web框架,将原生的lua api做了简单封装,并提供了根据配置文件,自动生成route模块,nginx.conf配置,logger模块的功能,减轻了开发工作量,避免重复手写大量易错的...
luastar是一个基于openresty的高性能高并发开发框架,支持http接口和web开发。 luastar使用openresty-1.7.10.2在macOS和centos6.5系统上测试过。 luastar主要特性如下: request/response封装...
OpenResty是基于Nginx和LuaJIT的开源项目,它将Nginx的高性能与Lua的轻量级脚本能力相结合,为Web应用开发提供了全新的可能性。 首先,我们来看《OpenResty 入门到精通》。这本书主要介绍了OpenResty的基础概念和...
openresty 前端开发进阶三之后端整合二 openresty 前端开发进阶四之session篇 openresty 前端开发进阶六之websocket篇 openresty 前端开发高级应用一之性能优化 openresty 前端开发高级应用一之动态追踪技术 ...
标题 "Python-一个基于OpenResty的仿Yii的web框架" 暗示了这个项目是用Python语言创建的一个Web开发框架,它受到了OpenResty和Yii框架的启发。OpenResty是一个集成了Nginx与LuaJIT的高性能Web平台,而Yii是一款流行...
Lua语言是一种轻量级的脚本语言,以其简洁、易读、高效等特点,在OpenResty中扮演着重要角色。Lua的环境搭建、基础数据类型、表达式控制结构、函数定义、模块化编程等都是开发OpenResty应用时需要熟练掌握的知识点。...
openresty, 轻量 OpenResty Docker 映像 OpenResty Docker 图像这个存储库包含Dockerfiles的ficusio/openresty 图像,它有两种。口味最主要的是 Alpine linux -based ficusio/openresty:latest
**Vanilla:基于Openresty的高性能Web应用开发框架** Vanilla是一个专为Web应用开发者设计的框架,它建立在Openresty的基础上,旨在简化Openresty的使用过程,让开发者能够更便捷地利用Openresty的强大性能。...
最后,Aapo提到了Leaf Corcoran的Lapis框架,这是一个基于OpenResty的轻量级MVC框架,值得开发者参考和使用。 总的来说,OpenResty通过解耦的库提供了一种高效、可扩展的方式来构建Web应用程序。其灵活性、性能和对...
对于Web开发人员来说,Lua是一种轻量级的脚本语言,它易于学习且执行效率高。OpenResty通过与Lua的结合,为开发人员提供了强大的编程能力,让Nginx的功能更加灵活和动态。 在OpenResty中,Lua环境的搭建是入门的...
Lor是一个运行在OpenResty上的基于Lua编写的Web框架.路由采用Sinatra风格,Sinatra是Ruby小而精的web框架.API基本采用了Express的思路和设计,Node.js跨界开发者可以很快上手.
OpenResty是一套基于Nginx和LuaJIT的高性能Web平台,它将Lua语言和Nginx模块化设计的优点...它为那些对Web前端开发、网关开发以及限流代理服务器开发感兴趣的读者提供了宝贵的指导,同时也为OpenResty社区做出了贡献。
通过以上介绍,我们可以看到OpenResty是如何将Nginx的高性能与Lua的灵活性结合,为企业级Web服务开发带来强大支持的。`openresty-1.19.9.1-win32.zip`的下载意味着Windows用户也能享受到这一强大工具的便利。
总之,OpenResty 1.25.3.1是一个强大的Web开发框架,它融合了Nginx的高性能和Lua的灵活性,为构建高性能、高并发的Web应用提供了理想平台。通过深入了解和熟练使用OpenResty,开发者可以实现高效、可扩展的服务架构...
基于OpenResty的百万级长连接推送 OpenResty是一种基于Nginx的开源Web服务器软件,它提供了强大的Web开发和部署能力。基于OpenResty的百万级长连接推送系统设计,需要解决高并发、大规模连接和实时推送等挑战。下面...
对于中小型应用,OpenResty足以满足其需求,并且由于其轻量级和高度可定制的特性,也深受许多大型企业的青睐。通过学习和掌握OpenResty,开发者可以构建出高并发、低延迟的Web服务,提高系统的整体性能和稳定性。
通过揉和众多设计良好的 Nginx 模块,OpenResty 有效地把 Nginx 服务器转变为一个强大的 Web 应用服务器,基于它开发人员可以使用 Lua 编程语言对 Nginx 核心以及现有的各种 Nginx C 模块进行脚本编程,构建出可以...
Lua是一种轻量级的脚本语言,被广泛用于嵌入到应用程序中提供灵活的扩展和定制功能。在OpenResty中,Lua用来编写动态Web应用的业务逻辑。 - **Lua环境搭建**:首先需要在系统中搭建Lua运行环境,以便开始Lua编程的...
Lor,则是一个轻量级且高效的Node.js风格的Lua Web框架,使得开发工作更加便捷和高效。 【描述】: "一个运行在OpenResty上的基于lor编写的社区软件" 社区软件通常需要处理大量的用户交互、数据存储和实时通信,这...
Lua 是一种轻量级的脚本语言,易于学习,它提供了丰富的数据类型和控制结构,以及一套完整的模块系统。Lua 的基础数据类型包括数字、字符串、布尔值、nil、表(table)、函数、用户数据和线程。通过这些基础数据类型...