Openresty

OpenResty 是一个通过 Lua 扩展 Nginx 实现的可伸缩的 Web 平台,内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。功能和nginx类似,就是由于支持lua动态脚本,所以更加灵活,可以实现 鉴权、限流、 分流、日志记录、灰度发布等功能。

Openresty安装
安装文件 下载地址 :https://download.csdn.net/my 或者 https://openresty.org/cn/download.html

1、下载并解压安装文件 如下:

 [root@zk03 apps]# tar -zvxf openresty-1.13.6.2.tar.gz 
  [root@zk03 apps]# tmv  openresty-1.13.6.2  openresty
  [root@zk03 apps]# cd openresty
[root@zk03 openresty]# ll
总用量 96
drwxrwxr-x. 43 1000 1000  4096 5月  15 2018 bundle
-rwxrwxr-x.  1 1000 1000 48140 5月  15 2018 configure
-rw-rw-r--.  1 1000 1000 22924 5月  15 2018 COPYRIGHT
drwxrwxr-x.  2 1000 1000   156 5月  15 2018 patches
-rw-rw-r--.  1 1000 1000  4689 5月  15 2018 README.markdown
-rw-rw-r--.  1 1000 1000  8972 5月  15 2018 README-windows.txt
drwxrwxr-x.  2 1000 1000    52 5月  15 2018 util

2、进入 openresty 目录 执行 ./configure 准备编译文件 提示
[root@zk03 openresty]# ./configure
/usr/bin/env: perl: 没有那个文件或目录

执行 yum install perl-devel 安装 perl
提示 configure: error: the HTTP rewrite module requires the PCRE library.
执行 yum install pcre-devel 安装 pcre
安装完成再次执行 ./configure 成功

3、’执行 make && make install 进行编译和安装
安装完成 执行 where is openresty 找到安装位置。然后切换到该目录下 可以看到有一个nginx目录,因为 openresty 就是基于nginx的扩展,就是包含了原有nginx的功能。

[root@zk03 openresty]# where is openresty
-bash: where: 未找到命令
[root@zk03 openresty]# whereis openresty
openresty: /usr/local/openresty
[root@zk03 openresty]# cd /usr/local/openresty
[root@zk03 openresty]# ll
总用量 248
drwxr-xr-x.  2 root root    123 1月  29 04:50 bin
-rw-r--r--.  1 root root  22924 1月  29 04:50 COPYRIGHT
drwxr-xr-x.  6 root root     56 1月  29 04:50 luajit
drwxr-xr-x.  6 root root     70 1月  29 04:50 lualib
drwxr-xr-x.  6 root root     54 1月  29 04:50 nginx
drwxr-xr-x. 44 root root   4096 1月  29 04:50 pod
-rw-r--r--.  1 root root 224167 1月  29 04:50 resty.index
drwxr-xr-x.  5 root root     47 1月  29 04:50 site

HelloWorld
开始第一个程序,HelloWorld
编辑配置问价 openresty/nginx/conf 下的nginx.conf 修改 location / 配置内容为 从 lua脚本输出内容 如下:

vi nginx/conf/nginx.conf

location / {
           # root   html;
           # index  index.html index.htm;
           default_type text/html;
           content_by_lua_block {
              ngx.say("helloworld");
           }
        }

到 openresty/nginx/sbin 下执行 nginx 命令启动nginx 如下:

[root@zk03 openresty]# cd nginx
[root@zk03 nginx]# ll
总用量 4
drwxr-xr-x. 2 root root 4096 1月  29 05:02 conf
drwxr-xr-x. 2 root root   40 1月  29 04:50 html
drwxr-xr-x. 2 root root    6 1月  29 04:50 logs
drwxr-xr-x. 2 root root   19 1月  29 04:50 sbin
[root@zk03 nginx]# sbin/nginx

浏览器中请求 zk03:80 返回 helloworld 如下:
Openresty_第1张图片

创建工作目录
或者为了不影响默认的安装目录,我们可以创建一个独立的空间来练习,先到在安装目录下创建 demo 目录,安装目录为/usr/local/openresty mkdir demo 然后在 demo 目录下创建两个子目录,一个是 logs 、一个是 conf 如下:

[root@zk03 nginx]# cd ..
[root@zk03 openresty]# mkdir demo
[root@zk03 openresty]# cd demo
[root@zk03 demo]# mkdir logs
[root@zk03 demo]# mkdir conf

conf 目录下 创建nginx配置文件 如下

worrker_processes 1;
error_log logs/error.log;
events {
   worker_connections 1024;
}
http {
  server {
    listen 8888;
    location / {
      default_type text/html;
      content_by_lua_block {
        ngx.say("Hello world")
      }
    }
  }
}

然后启动nginx -p 指明 nginx 启动时的配置目录

[root@zk03 demo]# ../nginx/sbin/nginx -p /usr/local/openresty/demo

访问zk03 可以正常访问
Openresty_第2张图片
总结
刚刚通过一个 helloworld 的简单案例来演示了 nginx+lua 的功能,其中用到
了 ngx.say 这个表达式,在 contentbyluablock 这个片段中进行访问。这个表达式属于ngxlua模块提供的api,用于向客户端输出一个内容。

更进一步的配置应用参考 :https://blog.csdn.net/zhangxm_qz/article/details/87939230 openresty实现网关功能

你可能感兴趣的:(学习笔记,openresty)