Nginx+Redis 利用redis2-nginx-module让Nginx直接访问Redis服务

徐星阑
2023-12-01

Nginx常用作反向代理服务器,而Redis是一种key-value数据库。本文将叙述如何让Nginx直接访问Redis服务。需要用到Nginx模块redis2-nginx-module。GitHub地址:https://github.com/openresty/redis2-nginx-module

GitHub上的README讲解的还是比较清楚。但是该模块的目的并不像我们标题所说的这么单纯,所以在看README的时候,需要更多自己挖掘,并且存在很多细节缺失。文本就针对Nginx直接访问Redis服务来单独讲述。

安装Redis

由于这部分不是本文重点,需要的同学可以参考这篇文章

https://www.cnblogs.com/codersay/p/4301677.html

 

安装OpenResty

首先,访问http://openresty.org/cn/installation.html, 按照教程安装OpenResty:

wget https://openresty.org/download/openresty-VERSION.tar.gz

tar-xzvf openresty-VERSION.tar.gz

cdopenresty-VERSION/

./configure

make

sudomake install

注意,这个时候其实已经安装好了Nginx服务器,以及加载了redis2-nginx-module模块,因为已经全部集成在了OpenResty,所以不需要再另外自己安装Nginx和加载redis2-nginx-module,然后重新编译安装。

 

修改nginx.conf文件

正如我们上面说的,我们这个时候已经安装好Nginx,接下来修改nginx.conf文件来测试通过Nginx直接访问Redis服务功能是否ok。那么问题来了,Nginx被安装在了什么地方呢?nginx.conf又在哪里?

Nginx - openresty/nginx

nginx.conf - /usr/local/openresty/nginx/conf

修改nginx.conf,就可以像README中描述的那样

# GET /get?key=some_key
location= /get {
     set_unescape_uri $key $arg_key;  # this requires ngx_set_misc
     redis2_query get $key;
     redis2_pass foo.com:6379;
 }
 
# GET /set?key=one&val=first%20value
location= /set {
     set_unescape_uri $key $arg_key;  # this requires ngx_set_misc
     set_unescape_uri $val $arg_val;  # this requires ngx_set_misc
     redis2_query set $key $val;
     redis2_pass foo.com:6379;
 }

这里我们加一个get和set方便测试。


启动Nginx

openresty/nginx/sbin/nginx start

现在就可以测试了!


 类似资料: