文档章节

使用Nginx+Lua进行Web开发

醉人的笑容你有没有
 醉人的笑容你有没有
发布于 2016/04/17 23:29
字数 781
阅读 717
收藏 5

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

    Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行,一个完整的Lua解释器不过200k,在目前所有脚本引擎中,Lua的速度是最快的。两者的结合可以开发出高性能的Web应用。

    Openresty就把nginx和lua结合在了一起,OpenResty 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。


    OpenResty 通过汇聚各种设计精良的 Nginx 模块(主要由 OpenResty 团队自主开发),从而将 Nginx 有效地变成一个强大的通用 Web 应用平台。这样,Web 开发人员和系统工程师可以使用 Lua 脚本语言调动 Nginx 支持的各种 C 以及 Lua 模块,快速构造出足以胜任 10K 乃至 1000K 以上单机并发连接的高性能 Web 应用系统。


    OpenResty 的目标是让你的Web服务直接跑在 Nginx 服务内部,充分利用 Nginx 的非阻塞 I/O 模型,不仅仅对 HTTP 客户端请求,甚至于对远程后端诸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都进行一致的高性能响应。
    

    1.安装openresty

    Ubuntu下:

    

sudo apt-get install openresty



    Mac下:

brew install homebrew/nginx/openresty



    2.配置nginx.conf

    给openresty添加一个server配置

    

lua_package_path '/Users/M/workspace/lua/tuyang-lua/?.lua;;';
server {
        listen       80;
        server_name  lua.tuyang.dev;
        charset utf8;

        #access_log  logs/host.access.log  main;
        root /Users/M/workspace/lua/tuyang-lua;
        location / {
            index  index.html index.htm index.php;
        }
        location ~ ^/app/([-_0-9a-zA-Z]+) {
                lua_code_cache off;
                default_type 'text/plain';
                content_by_lua_file $document_root/$1.lua;
        }
    }



    lua_package_path设置lua脚本搜寻路径,相当于Java中的classPath

    location ~ ^/app/ 所有/app路径的url请求都将被该location拦截并响应

    lua_code_cache off 关闭lua脚本缓存,这样在开发过程中,修改了lua脚本之后,不用重启服务器就可以看到修改后的结果了

    content_by_lua_file查找执行的lua脚本

    $document_root 定义的server根目录,此时为/Users/M/workspace/lua/tuyang-lua

    3.重启下openresty服务器

sudo openresty -s reload



    4.helloWorld教程

    在刚才配置的server根目录下面创建一个文件,命名为index.lua

ngx.say('<p>Hello world!</p>')



    5.使用浏览器访问


© 著作权归作者所有

醉人的笑容你有没有
粉丝 3
博文 27
码字总数 26791
作品 0
崇明
私信 提问
Nginx+Lua架构开发目录贴

使用Nginx+Lua开发近一年的时间,学习和实践了一些Nginx+Lua开发的架构,为了让更多人使用Nginx+Lua架构开发,总结了一份基本的学习教程 目录 第一章 安装Nginx+Lua开发环境 第二章 Nginx+Lu...

群星纪元
05/24
59
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

Nginx+Lua(OpenResty)开发高性能Web应用 使用Nginx+Lua(OpenResty)开发高性能Web应用 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而...

oldgril
2017/02/27
0
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

使用Nginx+Lua(OpenResty)开发高性能Web应用 博客分类: 跟我学Nginx+Lua开发 架构 ngxluaopenresty 在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、...

fdhay
2016/08/31
72
0
用Nginx+Lua(OpenResty)开发高性能Web应用

在互联网公司,Nginx可以说是标配组件,但是主要场景还是负载均衡、反向代理、代理缓存、限流等场景;而把Nginx作为一个Web容器使用的还不是那么广泛。Nginx的高性能是大家公认的,而Nginx开...

长征2号
2017/08/30
0
0
使用Nginx+Lua(OpenResty)开发高性能Web应用

一、ngx_lua简介 1 、Nginx 优点 Nginx设计为一个主进程多个工作进程的工作模式,每个进程是单线程来处理多个连接,而且每个工作进程采用了非阻塞I/O来处理多个连接,从而减少了线程上下文切...

DB_Terrill
2016/10/26
174
0

没有更多内容

加载失败,请刷新页面

加载更多

在C语言中“静态”是什么意思?

我已经在C代码的不同地方看到了static一词。 这就像C#中的静态函数/类(实现在对象之间共享)吗? #1楼 多文件变量作用域示例 在这里,我说明了静态如何影响多个文件中函数定义的范围。 交流...

javail
4分钟前
2
0
利用 FC + OSS 快速搭建 Serverless 实时按需图像处理服务

作者:泽尘 简介 随着具有不同屏幕尺寸和分辨率设备的爆炸式增长,开发人员经常需要提供各种尺寸的图像,从而确保良好的用户体验。目前比较常见的做法是预先为一份图像存放多份具有不同尺寸的...

阿里巴巴云原生
7分钟前
1
0
前端架构最佳实践

Folders-by-Feature Structure 胜过 Folders-by-Type Structure

lilugirl
17分钟前
3
0
Seata AT 模式启动源码分析

从上一篇文章「分布式事务中间件Seata的设计原理」讲了下 Seata AT 模式的一些设计原理,从中也知道了 AT 模式的三个角色(RM、TM、TC),接下来我会更新 Seata 源码分析系列文章。今天就来分...

后端进阶
18分钟前
3
0
Python中“自我”一词的目的是什么?

Python中self词的目的是什么? 我知道它是指从该类创建的特定对象,但是我看不到为什么要将它显式地作为参数添加到每个函数中。 为了说明这一点,在Ruby中,我可以这样做: class myClass ...

技术盛宴
20分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部