nginx异步访问mysql
nginx中有一个模块有这个功能,(以前的文章中扩展,这里叫模块,以后统一叫模块,模块可能准确点,因为扩展是单独的文件,而模块是嵌入到主文件中的),这个模块叫drizzle-nginx-module,下载地址为:
https://github.com/openresty/drizzle-nginx-module
要编译这个还不容易,上面这个地址也有说明:
先下载drizzle库,地址:http://openresty.org/download/drizzle7-2011.07.21.tar.gz
编译和配置选项:
./configure --without-server
make libdrizzle-1.0
make install-libdrizzle-1.0 接下是输出,http直接输出json字符串,怎么办,又要下一个模块,要下的模块太多了,
https://github.com/openresty/rds-json-nginx-module 最终的配置选项如下:
./configure --prefix=/opt/nginxrw --with-http_gzip_static_module --with-http_stub_status_module --with-http_ssl_module --add-module=/data/src/lua-nginx-module-0.9.8 --add-module=/data/src/ngx_devel_kit-0.2.19 --add-module=/data/src/drizzle-nginx-module-0.1.7 --add-module=/data/src/rds-json-nginx-module-master
最终启动nginx的时候,还有可能报drizzle共享库找不到,可以看下配置文件:/etc/ld.so.conf,改完配置后,记得要用lddconfig重新生效下
如何使用呢
首先在nginx的http模块中声明一个mysql的server
upstream backend {
drizzle_server 172.21.107.247:3306 dbname=oneplus_user_sso password= user=root protocol=mysql;
}
接下来是声明location处理了
location /mysql {
set $my_sql 'select * from t_user limit 1';
drizzle_query $my_sql;
drizzle_pass backend;
drizzle_connect_timeout 500ms; # default 60s
drizzle_send_query_timeout 2s; # default 60s
drizzle_recv_cols_timeout 1s; # default 60s
drizzle_recv_rows_timeout 1s; # default 60s
rds_json on;
}
其中rds_json on表示输出为json格式
接下来,访问地址:http://172.21.107.174/mysql,
就可以输出一个用户的信息,并且格式是json的
nginx异步访问mysql的更多相关文章
- Vert.x 异步访问数据库 MySQL
Vert.x提供异步访问数据库的API,数据库操作是一个耗时操作,使用传统的同步模型,容易阻塞线程,导致整体性能下降,因此我们对于数据库操作,需要使用Vert.x提供的异步API. Vert.x提供的 ...
- centos搭建https协议的tomcat和apache服务器以及nginx服务器,mysql php
Apache HTTP Server(简称 Apache)是 Apache 软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的 Web ...
- Gearman + Nodejs + MySQL UDF异步实现 MySQL 到 Redis 的数据同步
[TOC] 1, 环境 CentOS, MySQL, Redis, Nodejs 2, Redis简介 Redis是一个开源的K-V内存数据库,它的key可以是string/set/hash/list ...
- CentOS 7 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)
原文 CentOS 7 下安装 LEMP 服务(nginx.MariaDB/MySQL 和 php) LEMP 组合包是一款日益流行的网站服务组合软件包,在许多生产环境中的核心网站服务上起着强有力的作 ...
- 关于nodejs访问mysql的思考
nodejs要访问mysql数据库,首先必须要安装包mysql,命令:npm install mysql.安装成功后的访问数据库代码如下: var mysql = require('mysql'); ...
- Linux 下 Nginx + JDK + Tomcat + MySQL 安装指南
转载请注明出处:http://blog.csdn.net/smartbetter/article/details/52026342 Nginx 是一款高性能的 http 服务器/反向代理服务器/电子邮 ...
- CentOS 下安装 LEMP 服务(nginx、MariaDB/MySQL 和 php)
转载自:https://linux.cn/article-4314-1.html 编译自:http://xmodulo.com/install-lemp-stack-centos.html 作者: D ...
- PHP16 PHP访问MySQL
学习要点 PHP访问MySQL配置 PHP访问MySQL函数介绍 足球赛程信息管理 PHP访问MySQL配置 PHP.ini配置文件确认以下配置已经打开 extension=php_mysql.dll ...
- PHP安装 (结合之前的nginx安装与mysql安装组合为lnmp)
检查安装PHP所需的lib库 yum -y install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-de ...
随机推荐
- JVM的方法执行引擎-entry point栈帧
接着上一篇去讲,回到JavaCalls::call_helper()中: address entry_point = method->from_interpreted_entry(); entr ...
- 海豚星空扫码投屏 Android 接收端 SDK 集成 六步骤
一 跟目录的build.gradle添加私有mevan仓库 maven {url 'http://nexus.dolphinstar.cn/repo/openmavenx'} 二 app/build. ...
- python 判断文件和文件夹是否存在、创建文件夹
原文链接:https://www.cnblogs.com/hushaojun/p/4533241.html >>> import os >>> os.path.ex ...
- shell 三剑客之 awk
awk 是shell 里的常用命令,非常强大!
- 广州做假证c
广州做假证[电/薇:187ヘ1184ヘ0909同号]办各类证件-办毕业证-办离婚证,办学位证书,办硕士毕业证,办理文凭学历,办资格证,办房产证不. 这是一个简单的取最大值程序,可以用于处理 i32 数 ...
- Mono生命周期小实验
今天在写代码的时候,遇到一个初始化顺序问题,于是做了一个实验,下面记录结果: 情景: 1.在 脚本A中实例化 一个预制体,该预制体挂有脚本B 2.在 脚本A中,获取实例化物体 身上的 脚本B,并且设置 ...
- DLX AlgorithmX
AlgorithmX精确覆盖: https://en.wikipedia.org/wiki/Knuth's_Algorithm_X DLX的基础算法 https://zh.wikipedia.org/ ...
- Google Code Jam 2020 Round1B Join the Ranks
题意 给你一个形如\(1,2,\cdots,R,1,2,\cdots,R,1\cdots\)的序列,共重复\(C\)次.你每次可以选择一个区间\([L,R]\)将其平移到序列首部,最终使得序列具有\( ...
- mock之初体验
刚接触vue的时候,看到github上有人的开源项目介绍使用mock可以模拟接口调用,可以使用模拟数据避免跟后端交互也可以实现前端功能的完美展现,当时觉得卧槽,mock这个东西这么神奇的吗?那一定要学 ...
- H5简单内容
1.简单认识H5 HTML5不仅仅是作为HTML标记语言的一个最新版本,更重要的是它指定了Web开发的一系列标准,成为第一个将Web作为应用开发平台的HTML语言. 我们日常讨论的H5其实是有一个泛称 ...