Nginx怎麼實現非同步存取mysql

WBOY
發布: 2023-06-03 22:01:01
轉載
762 人瀏覽過

nginx中有一個模組有這個功能,(以前的文章中擴展,這裡叫模組,以後統一叫模組,模組可能準確點,因為擴展是單獨的文件,而模組是嵌入到主文件中的) ,這個模組叫drizzle-nginx-module

要編譯這個還不容易

#先下載drizzle函式庫
編譯和設定選項:

##複製程式碼程式碼如下:

./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 --with-http_stub_status_module --with-http_ssl_module 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=oneplususer_soo mysql;

}

接下來是宣告location處理了


複製程式碼 程式碼如下:

location/mysql { select * from t_user limit 1';

drizzle_query $my_sql;


nect_timeout 500ms; # default 60s
drizzle_send_query_timeout 2s; ; # default 60s

drizzle_recv_rows_timeout 1s; # }

其中rds_json on表示輸出為json格式


接下來,存取位址:http ://172.21.107.174/mysql,
就可以輸出一個使用者的訊息,而且格式是json的

以上是Nginx怎麼實現非同步存取mysql的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!