Rus*_*der 7 javascript nginx redis
我知道可以在 NGINX 服务器内部通过 JS 脚本处理每个请求。
我知道有 Lua Nginx 模块和 Lua Redis 驱动程序,并且可以在 Lua 中编写脚本并直接从 NGINX 服务器使用 Redis。
但是,我想使用 NGINX 的标准功能,我更喜欢用 JS 编写代码。我想知道 NJS 是否可以使用一些会话存储?以及怎么做?特别是,我想使用 Redis 作为会话存储。
如果避免自己为 Nginx 编译和安装第三方模块,我认为使用 njs 和 Redis 构建会话存储的最佳方法是利用内置的ngx_http_upstream_module模块并设置类似的东西
http {
[...]
upstream redis {
server unix:/var/run/redis/nginx.sock;
}
[...]
js_path conf.d/js/;
js_import redismiddleware.js;
[...]
server {
[...]
location /redisadapter {
internal;
try_files @dummy @redis;
}
location /request-we-are-tracking-no-1/ {
js_content redismiddleware.processRequestConditional;
}
[...]
location /request-we-are-tracking-no-2/ {
js_content redismiddleware.processRequestUnconditional;
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
以及相应的脚本
http {
[...]
upstream redis {
server unix:/var/run/redis/nginx.sock;
}
[...]
js_path conf.d/js/;
js_import redismiddleware.js;
[...]
server {
[...]
location /redisadapter {
internal;
try_files @dummy @redis;
}
location /request-we-are-tracking-no-1/ {
js_content redismiddleware.processRequestConditional;
}
[...]
location /request-we-are-tracking-no-2/ {
js_content redismiddleware.processRequestUnconditional;
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
简短的摘要
/var/run/redis/nginx.sock
/redisadapter
接收来自 njs 脚本的请求,将它们传输到 Redis 并将回复返回给 njs 方法,该方法启动了请求序列当然,我的简短解释留下了很多幕后细节,但我希望现在基本概念已经清楚
请随时提出其他问题
归档时间: |
|
查看次数: |
381 次 |
最近记录: |