Rya*_*n S 15 caching nginx redis
我正在使用nginx将请求传递给Node应用程序.该应用程序基本上充当html的远程缓存(检查用户请求的是否在redis数据库中,如果它只是显示,如果没有抓住它并将其存储在redis缓存中并提供它.)
我很好奇是否有通过让nginx直接从redis提供内容来绕过点击Node应用程序?我一直在使用http_redis模块,但我无法让它工作.
一个简单的例子是:http://mywebsite.com/a其中nginx将在"a"键中提供内容,或者如果密钥不存在则将其传递给节点应用程序.这甚至可能吗?
小智 11
也许比Webdis更难设置,但你可以直接在nginx守护进程中使用一些额外的模块,比如redis2-nginx-module.您将不得不重新编译nginx.
在主页上有一些很好的配置示例.
例如 :
# 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;
}
Run Code Online (Sandbox Code Playgroud)
当然,通过更多的nginx配置,您可以获得另一种URL模式.
请注意,对于此示例,您还必须编译ngx_set_misc模块.
您应该能够通过将 Nginx 设置为Webdis 的反向代理来获得一些东西。
使用 Webdis 的方式是将整个命令放入 URL 中,即您请求的GET密钥。这意味着,如果您想要提供的所有内容都可以使用,您可以在 Nginx 中执行以下操作:a/GET/aGET
location / {
rewrite ^(.*)$ /GET/$1 break;
proxy_pass http://127.0.0.1:7379/;
}
Run Code Online (Sandbox Code Playgroud)
(我在这里随心所欲地写下配置,语法可能略有偏差)。
然而,Webdis 项目还很年轻,所以不知道它的工作效果如何,并且响应是 JSON 文档,其中包含一些您可能不想返回的额外内容。
| 归档时间: |
|
| 查看次数: |
18173 次 |
| 最近记录: |