openresty配置的一些问题总结!

环境

  • win10下的linux子系统ubuntu(wsl)

  • openresty版本:ngx_openresty-1.7.7.2.tar.gz

wsl安装

请移步 {% post_link wsl笔记 %}

openresty安装

请参考安装OpenResty(Nginx+Lua)开发环境

或者参考 {% post_link openresty安装笔记 %}

openssl版本问题

需要指定旧版本,推荐在编译 Nginx 时指定 OpenSSL 源码目录,而不是使用系统自带的版本,这样更可控。

参考openssl版本问题

Lua模块安装

  1. 安装 LuaRocks

    LuaRocks: Lua 的模块安装和部署工具

    apt-get install luarocks
  2. 安装 luasocket

    lua 远程调试引入的 require("mobdebug").start() 需要 socket

    :Lua 的 Remote Debug 远程调试 现在还搞不定,此处占个坑。

    luarocks install luasocket

openresty使用

nginx常用命令

  1. 启动:

    指定配置文件

    nginx -p `pwd`/ -c conf/nginx.conf
  2. 停止:

    nginx指定配置文件的,停止时也需指定参数

    nginx -p `pwd`/ -c conf/nginx.conf -s quit

nginx.conf 配置

  • 正则匹配路径

    模式 含义
    location = /uri = 表示精确匹配,只有完全匹配上才能生效
    location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前。
    location ~ pattern 开头表示区分大小写的正则匹配
    location ~* pattern 开头表示不区分大小写的正则匹配
    location /uri 不带任何修饰符,也表示前缀匹配,但是在正则匹配之后
    location / 通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default
    location ~ ^/api/([-_a-zA-Z0-9]+) {
    # 准入阶段完成参数验证
    access_by_lua_file nginx_test_server/access_check.lua; #内容生成阶段
    content_by_lua_file nginx_test_server/$1.lua;
    }
  • 开发调试时取消缓存

    # 这里设置为 off,是为了避免每次修改之后都要重新 reload 的麻烦。
    # 在生产环境上务必确保 lua_code_cache 设置成 on。
    lua_code_cache off;
  • http 模块 报错 bad argument #2 to 'set_keepalive' (number expected, got nil)

    参考:bad argument #2 to 'set_keepalive' (number expected, got nil)的解决办法

    在关联数组中多传一个参数keepalive=false 即

    {
    method = “GET”,
    path = requestBody,
    keepalive=false
    }

lua 的一些坑

  • openresty/lua-resty-redis 的 批量查询 返回值问题

    参考:nil、null与ngx.null

    官方说明

    A non-nil Redis "bulk reply" results in a Lua string as the return value. A nil bulk reply results in a ngx.null return value.

    A nil multi-bulk reply returns in a ngx.null value.

    如果使用批量查询如mget,查不到数据会返回 ngx.null

OpenResty缓存

需要先在 nginx.conf 里面的修改 ,这个 cache 是 Nginx 所有 worker 之间共享的

lua_shared_dict my_cache 128m;

openresty配置的更多相关文章

  1. 基于openresty配置https访问

    安装方法:http://openresty.org/cn/linux-packages.html 1. openssl的版本信息 [root@localhost conf]# openssl vers ...

  2. openresty 配置 mongodb 可操作插件

    1.下载lua-resty-mongol https://github.com/bigplum/lua-resty-mongol 2.配置_mongo.conf文件,在conf创建_mongo.con ...

  3. Openresty 进行路由系统设计

    1.系统基础设计图为: 用户通过Http访问Openresty(Nginx + Lua), 其中Nginx虚拟主机中配置文件进行Lua脚本加载. LUA通过nginx内置变量或者http请求中变量来区 ...

  4. 使用ZeroBrane Studio调试Openresty lua脚本

    介绍 ZeroBraneStudio 作为轻量级.跨平台的Lua IDE,已被广泛用来调试各种Lua引擎游戏框架.Openresty.Wireshark脚本等等. Openresty 是一个建立在Ng ...

  5. openresty 集成 sentry 异常系统

    sentry 是一个方便的错误异常追踪系统,同时社区也提供了openresty 的lua 包,使用docker-compose 进行测试 备注: sentry 部分的配置来自官方文档 环境准备 doc ...

  6. 使用prometheus+ grafana+nginx-module-vts 模块监控openresty

      nginx-module-vts 是一个很不错的nginx 模块,我们可以用来,方便的分析系统的请求状态 同时支持基于prometheus 的监控, 我参考openresty 的docker镜像已 ...

  7. openresty + lua 2、openresty 连接 redis,实现 crud

    redis 的话,openresty 已经集成,ng 的话,自己引入即可. github 地址:https://github.com/openresty/lua-resty-redis github  ...

  8. docker 安装 openresty

    文章来源: 1.拉取镜像 # docker pull openresty/openresty 2.启动openresty # docker run -it --name openresty -p : ...

  9. Nginx 配置埋点js日志采集

    页面埋点&nginx日志采集 页面(web容器:httpd/nginx负载均衡 + apache server)<===> 日志采集服务器(nginx服务器) 通过某个页面跳转到我 ...

随机推荐

  1. ABP入门教程8 - 应用层创建应用服务

    点这里进入ABP入门教程目录 创建目录 在应用层(即JD.CRS.Application)下创建文件夹Course //用以存放Course相关应用服务 在JD.CRS.Application/Cou ...

  2. Jenkins实现单一安卓项目打包多个module填坑实录

    今天接手一个任务,已有项目结构上新添加了一个module,这个module打包工作需要在Jenkins上添加一个方便测试点击的打包工程 因为之前已有现成的打包工程,我直接新建了一个工程并且复制原有工程 ...

  3. java8-13-默认方法 静态方法 重复注解 类型注解

    java8增加默认方法 静态方法   重复注解 类型注解   1.默认方法 default修饰   为什么要有这个特性? 当修改接口时候,需要修改全部实现该接口的类.为了解决这个问题,所以引进默认方法 ...

  4. Java编译器的2点优化

    优化1 对于byte/short/char三种类型来说,如果右侧赋值的数值没有超过范围,那么javac编译器将会自动隐含地为我们补上一个(byte)(short)(char). 如果没有超过左侧的范围 ...

  5. 第四章 返回结果的HTTP状态码

    第四章 返回结果的HTTP状态码 HTTP状态码负责表示客户端HTTP请求的返回结果.标记服务端的处理是否正常.通知出现的错误等. 1.状态码的类别  2. 2XX成功 200 OK 表示服务端已正常 ...

  6. Vue 修饰符once的方法使用

    once:只执行一次 代码: <!doctype html> <html lang="en"> <head> <meta charset= ...

  7. 从Python安装到语法基础,这才是初学者都能懂的爬虫教程

    Python和PyCharm的安装:学会Python和PyCharm的安装方法 变量和字符串:学会使用变量和字符串的基本用法 函数与控制语句:学会Python循环.判断语句.循环语句和函数的使用 Py ...

  8. Tensorflow分布式部署和开发

    关于tensorflow的分布式训练和部署, 官方有个英文的文档介绍,但是写的比较简单, 给的例子也比较简单,刚接触分布式深度学习的可能不太容易理解.在网上看到一些资料,总感觉说的不够通俗易懂,不如自 ...

  9. 终端中的 zsh 和 bash-魔法切换

    常用ubuntu,这两个终端都装了,平时使用zsh比较方便,可是,有时候出现了问题,不知道是谁的问题时候,还要做一下切换操作的,怎么才能迅速切换呢? 要切换,首先要知道你现在使用的是什么,请看第一个命 ...

  10. IT兄弟连 Java语法教程 三目运算符

    Java提供了一个特殊的三目(三个分支)运算符,它可以替代特定类型的if-then-else语句结构.这个运算符是“?”乍一看可能有一些困惑,但一旦理解“?”运算符,就可以高效地使用它.“?”运算符的 ...