不灭的焱

革命尚未成功,同志仍须努力

作者:php-note.com  发布于:2019-03-31 16:17  分类:OpenResty_Lua  编辑

OpenResty 最主要的应用场景之一是 API Server,有别于传统 Nginx 的代理转发应用场景,API Server 中心内部有各种复杂的交易流程和判断逻辑,学会高效的与其他 HTTP Server 调用是必备基础。

作者:php-note.com  发布于:2019-03-31 16:13  分类:OpenResty_Lua  编辑

所谓 SQL 注入,就是通过把 SQL 命令插入到 Web 表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的 SQL 命令。

作者:php-note.com  发布于:2019-03-31 16:12  分类:OpenResty_Lua  编辑

在 OpenResty 的体系中,可以通过共享内存的方式完成不同工作进程的数据共享,可以通过 Lua 模块方式完成单个进程内不同请求的数据共享。如何完成单个请求内不同阶段的数据共享呢?最典型的例子,估计就是在 log 阶段记录一些请求的特殊变量。

作者:php-note.com  发布于:2019-03-31 16:05  分类:OpenResty_Lua  编辑

Nginx 子请求是一种非常强有力的方式,它可以发起非阻塞的内部请求访问目标 location。目标 location 可以是配置文件中其他文件目录,或 任何 其他 nginx C 模块,包括 ngx_proxy、ngx_fastcgi、ngx_memc、ngx_postgres、ngx_drizzle,甚至 ngx_lua 自身等等 。

作者:php-note.com  发布于:2019-03-31 15:52  分类:OpenResty_Lua  编辑

Nginx作为一个成熟、久经考验的负载均衡软件,与其提供丰富、完整的内置变量是分不开的,它极大增加了对Nginx网络行为的控制细度。这些变量大部分都是在请求进入时解析的,并把他们缓存到请求cycle中,方便下一次获取使用。首先来看看Nginx对都开放了那些API。

作者:php-note.com  发布于:2019-03-31 15:50  分类:OpenResty_Lua  编辑

实现一个最最简单的数学计算:加、减、乘、除,给大家演示如何搭建简单的 API Server。

作者:php-note.com  发布于:2019-03-31 15:45  分类:OpenResty_Lua  编辑

有关 Nginx 的日志级别,请看下表:

ngx.STDERR     -- 标准输出
ngx.EMERG      -- 紧急报错
ngx.ALERT      -- 报警
ngx.CRIT       -- 严重,系统故障,触发运维告警系统
ngx.ERR        -- 错误,业务不可恢复性错误
ngx.WARN       -- 告警,业务中可忽略错误
ngx.NOTICE     -- 提醒,业务比较重要信息
ngx.INFO       -- 信息,业务琐碎日志信息,包含不同情况判断等
ngx.DEBUG      -- 调试

他们是一些常量,越往上等级越高。

作者:php-note.com  发布于:2019-03-31 12:31  分类:OpenResty_Lua  编辑

HTTP响应报文分为三个部分:

  1. 响应行
  2. 响应头
  3. 响应体
作者:php-note.com  发布于:2019-03-31 12:25  分类:OpenResty_Lua  编辑

由于 OpenResty 基于 Nginx ,所以天然的对请求 body 的读取细节与其他成熟 Web 框架有些不同。

作者:php-note.com  发布于:2019-03-31 12:21  分类:OpenResty_Lua  编辑

主要介绍了一下如何使用不同 location 进行协作,对 location 进行糅合,往往都是要需要参数的二次调整。如何正确获取传递参数、设置参数,就是你的必修课了。本章目的是给出在 OpenResty 的世界中,我们如何正确获取、设置 uri 参数。

作者:php-note.com  发布于:2019-03-31 12:16  分类:OpenResty_Lua  编辑

nginx 世界的 location 是异常强大的,毕竟 nginx 的主要应用场景是在负载均衡、API server,在不同 server、location 之间跳转更是家常便饭。利用不同 location 的功能组合,我们可以完成内部调用、流水线方式跳转、外部重定向等几大不同方式,下面将给大家介绍几个主要应用,就当抛砖引玉。

作者:php-note.com  发布于:2019-03-31 12:10  分类:OpenResty_Lua  编辑

HelloWorld 是我们亘古不变的第一个入门程序。但是 OpenResty 不是一门编程语言,跟其他编程语言的 HelloWorld 不一样,让我们看看都有哪些不一样吧。

作者:php-note.com  发布于:2019-03-31 11:19  分类:OpenResty_Lua  编辑

首先你要安装 OpenResty 需要的多个库 请先配置好你的apt源,配置源的过程在这就不阐述了,然后执行以下命令安装OpenResty编译或运行时所需要的软件包。

# apt-get install libreadline-dev libncurses5-dev libpcre3-dev \
    libssl-dev perl make build-essential
作者:php-note.com  发布于:2019-03-31 11:13  分类:OpenResty_Lua  编辑

使用选项 --with-Components 激活组件,--without 则是禁止组件。 你可以根据自己实际需要选择 with 或 without。如下命令,OpenResty 将配置安装在 /opt/openresty 目录下(注意使用 root 用户),并激活luajit、http_iconv_module 并禁止 http_redis2_module 组件。

 # ./configure --prefix=/opt/openresty\
             --with-luajit\
             --without-http_redis2_module \
             --with-http_iconv_module
作者:php-note.com  发布于:2019-03-31 11:09  分类:OpenResty_Lua  编辑

除了 windows 版本是以二进制发行,其他平台由于系统自身的兼容性,推荐的都是源码编译方式。

作者:php-note.com  发布于:2019-03-31 10:58  分类:OpenResty_Lua  编辑

chmod 777

永远不要 使用 777,这可能是一个漂亮的数字,有时候可以懒惰的解决权限问题, 但是它同样也表示你没有线索去解决权限问题,你只是在碰运气。 你应该检查整个路径的权限,并思考发生了什么事情。

要轻松的显示一个路径的所有权限,你可以使用:

namei -om /path/to/check
作者:php-note.com  发布于:2019-03-31 10:43  分类:OpenResty_Lua  编辑

负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。

作者:php-note.com  发布于:2019-03-31 10:34  分类:OpenResty_Lua  编辑

反向代理(Reverse Proxy)方式是指用代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。

作者:php-note.com  发布于:2019-03-31 10:31  分类:OpenResty_Lua  编辑

Nginx 日志主要有两种:access_log(访问日志) 和 error_log(错误日志)。

作者:php-note.com  发布于:2019-03-31 10:11  分类:OpenResty_Lua  编辑

我们先来看看最简单的本地静态文件服务配置示例:

server {
        listen       80;
        server_name www.test.com;
        charset utf-8;
        root   /data/www.test.com;
        index  index.html index.htm;
}