文档章节

openresty编译添加drizzle-nginx-module模块

啊哈关关
 啊哈关关
发布于 2017/07/25 10:44
字数 302
阅读 27
收藏 0
点赞 0
评论 0

1.下载drizzle模块

地址见:   http://agentzh.org/misc/nginx/drizzle7-2011.07.21.tar.gz

1.安装drizzle

  •     cd /usr/local/openresty
  •    tar zxvf drizzle7-2011.7.21.tar.gz
  •    cd drizzle7-2011.7.21/
  •    ./configure --with-server
  •    make libdrizzle-1.0
  •    make install-libdrizzle-1.0

 3.编译drizzle-nginx-module

wget  http://openresty.org/download/ngx_openresty-1.9.7.4.tar.gz

tar -zxvf  ngx_openresty-1.9.7.4.tar.gz

cd ngx_openresty-1.9.7.4

输入nginx -V命令,将参数添加上来即可

3.编译命令

./configure --prefix=/usr/local/openrest --with-cc-opt='-O2 -I/usr/local/Cellar/openssl/1.0.2h_1/include/ -I/usr/local/Cellar/pcre/8.39/include/'  --with-stream --with-stream_ssl_module --add-module=/usr/local/openresty/stream-lua-nginx-module --with-ld-opt='-Wl,-rpath,/usr/local/openresty/luajit/lib -L/usr/local/Cellar/openssl/1.0.2h_1/lib/ -L/usr/local/Cellar/pcre/8.39/lib/' --with-http_ssl_module --with-http_drizzle_module

make

make install

 

4.下图表示已经编译成功

4

 

5.测试一下:

nginx.conf文件:(server位于http中)

运行结果如下:返回格式为json

测试情形二:

server{
        
    listen 8080;

       
    location @user-by-name { 
        set_unescape_uri $name $arg_name; #接收name参数
        set_quote_sql_str $name;   #编码防止注入
        drizzle_query 'select * from user01 where name=$name'; 
        drizzle_pass backend; 
        rds_json on; 
    }

    location @user-by-id { 
        set_quote_sql_str $id $arg_id; 
        drizzle_query 'select * from user01 where id=$id'; 
        drizzle_pass backend; 
        rds_json on; 
    }



    location =/user {
         access_by_lua '
                if ngx.var.arg_name then
                    return ngx.exec("@user-by-name")
                end
                
                if ngx.var.arg_id then
                    return ngx.exec("@user-by-id")
                end    

            ';


            rds_json_ret 400 "expecting \"name\" or \"id\" query arguments"; 

        }
    }}

运行结果:

 

 

测试情形三:


 location /mysql-status {
           drizzle_status;
       }

测试情形四:

location ~ '^/mysql/(.*)' {
            set $name $1; 
            set_quote_sql_str $quote_name $name; 
            set $sql "SELECT * FROM user01 WHERE username=$quote_name"; 
            drizzle_query $sql; 
            drizzle_pass backend; 
            rds_json on; 
       }

运行结果:

© 著作权归作者所有

共有 人打赏支持
啊哈关关
粉丝 5
博文 126
码字总数 63808
作品 0
深圳
程序员
OpenResty 1.13.6.2,基于 Nginx 与 Lua 的 Web 平台

OpenResty 1.13.6.2 已发布,从这个版本开始,官方将会提供 64 位 Windows 原生二进制包,也为 Ubuntu 18.04 Bionic 提供新的 yum 包。 下一个 OpenResty 版本将基于 nginx core 1.13.12 或即...

淡漠悠然 ⋅ 05/23 ⋅ 9

云服务上使用神奇的nginx --with-stream模块开启mysql外网地址

因为有时候有那么一个需求,需要云数据库开放外网地址,但是有个别云运营商是没有提供这个操作的,经过几番头脑风暴后,想起了nginx上又一个--with-stream模块可以把内网ip端口映射到外网地址...

legehappy ⋅ 04/17 ⋅ 0

使用nginx+lua实现WAF功能

一、了解WAF 1.1 什么是WAF Web应用防护系统(也称:网站应用级***防御系统 。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用 防火墙 是通过执行一系列针...

kuSorZ ⋅ 前天 ⋅ 0

Nginx Lua WAF通用绕过方法

  1.前言   2018年4月3日@ bre4k在群里发了一个trick。      Nginx Lua获取参数时,默认获取前100个参数值,其余的将被丢弃。      所以,用了Nginx Lua的WAF默认都会被Bypass。...

FreeBuf ⋅ 05/15 ⋅ 0

OpenResty lua 请求redis服务

1.环境准备: 1.1 方便学习使用window版本 下载地址:https://github.com/LomoX-Offical/nginx-openresty-windows 下载后,解压到D:toolsopenresty-1.13.6.1-win32 目录是: 1.2 其中:lua文...

君o ⋅ 05/15 ⋅ 0

Nginx 通过 Lua + Redis 实现动态封禁 IP

1。背景 为了禁止一些爬虫或恶意用户请求的服务器,我们需要创建一个动态IP黑名单。对于黑名单内的IP,拒绝提供服务。 两。建筑 实现IP黑名单的方法有很多种。 1,在操作系统层面,配置iptab...

楠木楠 ⋅ 04/18 ⋅ 0

基于OpenResty和Node.js的微服务架构实践

什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性、伸缩性较差,技术转型、跨语言配合相对困难。而微服务架构强调一个服务负责一项业务,服务可以单...

个推 ⋅ 04/26 ⋅ 0

请教operesty如何加载python包

我目前遇到一个项目有部分算法代码是使用python实现的,而我的服务框架代码是使用openresty来实现的,现在要实现在openresty里面调用python脚本。 纯lua脚本可以实现了: py = require “pyt...

子悠 ⋅ 06/18 ⋅ 0

OneinStack 1.7 发布,一键 PHP/JAVA 安装工具

OneinStack 1.7 发布了,这个脚本是使用 shell编写,为了快速在生产环境上部署lnmp/lamp/lnmpa/lnmt(Linux、Nginx/Tengine/OpenResty、 MySQL/MariaDB/Percona/MongoDB/PostgreSQL、PHP、A...

lj2007331 ⋅ 04/25 ⋅ 0

使用Docker(Mac)搭建 Nginx/Openresty - Kafka - kafkaManager

本文默认读者已经对Docker有一定了解,且清楚使用Docker进行部署的优势。 1.安装Docker(Mac) 官网:https://docs.docker.com/docker-for-mac/install/ 1.1 下载 Docker for Mac 地址:htt...

高广超 ⋅ 05/26 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部