Nginx常用作反向代理服务器,而Redis是一种key-value数据库。本文将叙述如何让Nginx直接访问Redis服务。需要用到Nginx模块redis2-nginx-module。GitHub地址:https://github.com/openresty/redis2-nginx-module
GitHub上的README讲解的还是比较清楚。但是该模块的目的并不像我们标题所说的这么单纯,所以在看README的时候,需要更多自己挖掘,并且存在很多细节缺失。文本就针对Nginx直接访问Redis服务来单独讲述。
由于这部分不是本文重点,需要的同学可以参考这篇文章
https://www.cnblogs.com/codersay/p/4301677.html
首先,访问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,接下来修改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方便测试。
openresty/nginx/sbin/nginx start
现在就可以测试了!