X
活动推荐

阿里云高性能云主机2折293元/年

企业级性能云服务器限时2折起
新用户5折爆款服务器会场
查看详情 293元/年
阅读模式:

nginx安装mysql和json模块

查看:2808  回复:0  类型:  来源:php自学网  标签 mysql linux nginx centos 运维 网站架构

        nginx安装mysql和json模块,在nginx中直接连接mysql,并获取mysql中的数据,并把获取的数据返回json数据到浏览器中,不用再通过php-fpm或lua去连接数据库,提高web的性能。下面是安装过程。

        系统centos7,nginx版本1.14.0,已安装好nginx中新增加模块。

一、安装nginx

http://zixuephp.net/article-204.html (安装nginx)

http://zixuephp.net/article-397.html (升级nginx)

二、nginx安装mysql和json模块

    1.mysql模块下载

        下载地址:https://github.com/openresty/drizzle-nginx-module

nginx mysql module git download.png

git clone https://github.com/openresty/drizzle-nginx-module.git
ls
drizzle-nginx-module
#复制到nginx模块目录下
cp -R drizzle-nginx-module/ /usr/local/nginx/module

#下载好mysql模块后还需要安装模块的drizzle类库,不安装会报错 ./configure: error: the ngx_drizzle addon requires the libdrizzle library.

http://openresty.org/download/drizzle7-2011.07.21.tar.gztar xzvf drizzle7-2011.07.21.tar.gz
cd drizzle7-2011.07.21/
./configure --without-server
make libdrizzle-1.0
make install-libdrizzle-1.0

nginx mysql module.png

    2.json模块下载

        下载地址:https://github.com/openresty/rds-json-nginx-module

nginx json module git download.png

#复制模块文件到nginx module目录下
cp -R rds-json-nginx-module/ /usr/local/nginx/module/

nginx json module.png

    3.nginx预编译

        查看当前nginx预编译参数。

./nginx -V
[root@zixuephp sbin]# ./nginx -V
nginx version: nginx/1.14.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC) 
built with OpenSSL 1.0.2k-fips  26 Jan 2017
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-threads --user=www --group=www --add-module=/usr/local/nginx/module/ngx_devel_kit-0.3 --add-module=/usr/local/nginx/module/lua-nginx-module-0.10 --add-module=/usr/local/nginx/module/echo-nginx-module-0.61

        进入下载好后解压的nginx包中,添加模块路径,进行预编译。如果没有重新下载nignx源码包并解压。

--add-module=/usr/local/nginx/module/drizzle-nginx-module

--add-module=/usr/local/nginx/module/rds-json-nginx-module

nginx source code.png

./configure  --prefix=/usr/local/nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-http_stub_status_module --with-mail --with-mail_ssl_module --with-stream --with-stream_ssl_module --with-stream_realip_module --with-stream_ssl_preread_module --with-threads --user=www --group=www --add-module=/usr/local/nginx/module/ngx_devel_kit-0.3 --add-module=/usr/local/nginx/module/lua-nginx-module-0.10 --add-module=/usr/local/nginx/module/echo-nginx-module-0.61  --add-module=/usr/local/nginx/module/drizzle-nginx-module  --add-module=/usr/local/nginx/module/rds-json-nginx-module

    4.预编译成功:

nginx mysql and json.png

    5.编译nginx

make

    make success.png

    6.替换原nginx

cd objs
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp nginx /usr/local/nginx/sbin/nginx

#重启nginx
service nginx restart

    7.刷新lib库

        不刷新会报错:error while loading shared libraries: libdrizzle.so.1: cannot open shared object file: No such file or directory

ldconfig

    8.安装mysql和json模块成功

nginx -V.png

三、mysql和json模块简单使用

vim nginx.conf


http {
     ...
     #nginx异步连接mysql  
     upstream backend {         
         drizzle_server 127.0.0.1:3306 dbname=test password=123456 user=root protocol=mysql;
     }
      
     server {    
         location /mysql {
             #执行sql语句                   
             drizzle_query "select version()";           
             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
             
             #返回查询的结果,json格式数据
             rds_json on;
             
         }
     }
     
 }

        访问 http://zixuephp.net/mysql 链接返回json格式的数据,适合一些业务逻辑简单访问量大的接口,如果业务逻辑复杂可以在这里执行mysql存储过程函数。mysql模块函数的使用参考:https://github.com/openresty/drizzle-nginx-module#drizzle_server

return json nginx.png

分享到:
0 0

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

发布评论:


登录:
  表情:
评论话题
推荐阅读:
什么是天使轮?什么是A轮融资?B轮融资?   阅读:3240最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:11252nginx安装redis模块   阅读:2723linux php7安装yaf扩展   阅读:6500最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:8991最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:11252小米手机端商城rem适配原理   阅读:5791十张GIF让你弄懂递归等概念   阅读:4905移动端js触摸touch详解(附带案例源码)   阅读:13356linux php7安装yaf扩展   阅读:6500人性漫画:打工与创业的残酷区别   阅读:3735php 获取当前前后年、月、星期、日、时分秒的时间   阅读:5149给php7安装redis扩展库   阅读:6547web项目高并发量网站解决方案   阅读:3659php文件下载防盗链   阅读:8153小米手机端商城rem适配原理   阅读:5791shell脚本破解十位数内的所有纯数字rar加密压缩包脚本   阅读:7119javascript获取两个日期间的所有日期   阅读:4832php 使用 smtp.php 类在线发送邮件功能   阅读:4485人性漫画:打工与创业的残酷区别   阅读:3735centos7开启交换内存   阅读:8635mysql5.7主从同步配置   阅读:2553centos 7 忘记root密码   阅读:3839网站性能优化-页面静态缓存   阅读:4594什么是天使轮?什么是A轮融资?B轮融资?   阅读:3240linux教程,鸟哥私房菜(pdf全集)   阅读:7130phpexcel 超简单从excel表格一键导入数据到数据库教程   阅读:10378centos 7 设置 nginx-1.11.10 开机启动   阅读:6747session与cookie的区别   阅读:3332php中地址引用&的真正理解-变量引用、函数引用、对象引用   阅读:4532mysql数据一键导出到csv文件   阅读:4466mysql的四种索引类型   阅读:16637给网站添加一键qq登录的功能   阅读:5925php 生成图片,给图片加水印   阅读:4557最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:11252最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:8991centos 7 开启网络   阅读:4869给网站添加一键新浪微博登录的功能   阅读:5535php打印九九乘法表   阅读:7424php冒泡排序法   阅读:11125nginx编译安装后对nginx进行平滑升级   阅读:4586简单的DOS攻击之死亡之ping详解   阅读:36207Nginx 配置文件详解   阅读:3718javascript点击复制内容   阅读:5320mysql 为什么添加索引可以提高访问速度   阅读:4921centos 7 修改系统屏幕分辨率   阅读:35675TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:2029php冒泡排序法   阅读:11125一键分享到QQ空间、QQ好友、新浪微博、微信代码   阅读:109542程序员找工作三要素(必看)   阅读:4641