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. tomcat的一些优化及报错

    以下为转发来,具体地址为 http://blog.csdn.net/chen3888015/article/details/7432488 环境centos5.7 tomcat6 http://apr ...

  2. 对比keep-alive路由缓存设置的2种方式

    方式有两种 .路由元信息(2.1.0版本之前) .属性方式(2.1.0版本之后新增) Vue2.1.0之前: 想实现类似的操作,你可以: 配置一下路由元信息 创建两个keep-alive标签 使用v- ...

  3. 第05组 Alpha冲刺(3/4)

    第05组 Alpha冲刺(3/4) 队名:天码行空 组长博客连接 作业博客连接 团队燃尽图(共享): GitHub当日代码/文档签入记录展示(共享): 组员情况: 组员1:卢欢(组长) 过去两天完成了 ...

  4. 这样修改有哪些优缺点 wcf service via attribute setting vs config

    客户要恢复数据,结果就是block在某个阶段,在server端log一圈下来,发现原来是client端出了问题,就是这个log: ERROR - Identity check failed for o ...

  5. 数据库访问接口(ODBC,OLEDB,ADO)

    数据库访问接口发展历史 ODBC历史 ODBC(Open Database Connectivity,开放数据库互连).要了解ODBC是什么,先了解一下数据库连接的相关知识.在最开始连接数据库时,由于 ...

  6. ReactNative: 使用View组件创建九宫格

    一.简言 初学RN,一切皆新.View组件跟我们iOS中UIView类似,作为一个容器视图使用,它主要负责承载其他的子组件.View组件采用的是FlexBox伸缩盒子布局,通过对它的布局可以影响子组件 ...

  7. C#中char[]与string之间的转换;byte[]与string之间的转化

    目录 1.char[]与string之间的转换 2.byte[]与string之间的转化 1.char[]与string之间的转换 //string 转换成 Char[] string str=&qu ...

  8. 知识图谱如何运用于RecomSys

    将知识图谱作为辅助信息引入到推荐系统中可以有效地解决传统推荐系统存在的稀疏性和冷启动问题,近几年有很多研究人员在做相关的工作.目前,将知识图谱特征学习应用到推荐系统中主要通过三种方式——依次学习.联合 ...

  9. 安装v2sora@y

    v2r@y安装 1. 安装nginx 这儿使用tengine进行安装, 可以看以前的博客 1.1) 注意带 http_v2 编译 ./configure --with-http_v2_module 不 ...

  10. Knative 实战:一个微服务应用的部署

    作者 | 元毅 阿里云智能事业群高级开发工程师 在 Istio 中提供了一个 Bookinfo 的示例,用于演示微服务之间的调用,那么如何在 Knative 中部署这个示例呢?本文将会给大家介绍一下在 ...