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. automaticallyAdjustsScrollViewInsets

    参考链接: https://www.jianshu.com/p/a1987a7c11ba

  2. Python对 Excel 的常用操作

    几个常用的对象 Workbook:工作簿,一个包含多个Sheet的Excel文件 Worksheet:工作表,一个Workbook有多个Worksheet,如"Sheet1",&q ...

  3. 使用python对整个网页进行截图

    方法一.使用PyQt4的QtWebKit组件 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  4. echars line 底部图例强制不换行(滚动),修改图例样式

    { grid: { left: '5px', right: '10px', top: '10px', bottom: '40px', containLabel: true }, tooltip: { ...

  5. 剑指Offer-30.连续子数组的最大和(C++/Java)

    题目: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决.但是,如果向量中 ...

  6. 微信小程序图像增强img.superresolution接口

    整体流程: 获得access_token 调用img.superresolution得到media_id 根据media_id下载图片 注:虽然以下的几个接口都是服务端API,但是我都是在客户端调用的 ...

  7. JS做的类似腾讯专题图片播放器,大家可以一起来改进!

    我是一个应届生,来公司不久,根据需求,网站需要一个专题图片轮播的页面.网上确实有很多现成的插件,但是,作为一个JS还不是很牛的应届生,我决定自己写一个! 话说忽然想到做个这个还真不容易,一时思绪理不清 ...

  8. 我用python训练了一个拳皇模型,从此在各地游戏厅再也没输过!

    ​ 从世界瞩目的围棋游戏 AlphaGo ​ ​ ​ 突然袭来的回忆杀~ 今天为大家介绍一个在街机游戏<街头霸王 3>中进行模拟来训练改进强化学习算法的工具包.不仅在 MAME 游戏模拟器 ...

  9. css的伪元素 ::after ::before 和 图标字体的使用

    浅谈css的伪元素::after和::before   css中的::after和::before已经被大量地使用在我们日常开发中了,使用他们可以使我们的文档结构更加简洁.但是很多人对::after和 ...

  10. 扎心一问!你凭什么成为top1%的Java工程师?

    目录 1.解决生产环境里的突发故障 2.对棘手的线上性能问题进行优化 3.锻造区别于普通码农的核心竞争力 4.打磨架构设计能力 5.你凭什么成为 top1%?   你工作几年了? 是否天天CRUD到吐 ...