Nginx之memcached_module模块解读

本文介绍了如何在Nginx中使用memcached_module模块提高动态页面速度,涉及模块安装、添加和配置指令,如设置缓存键、Memcached服务器连接参数以及错误处理策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

基本介绍  

安装添加模块 

模块配置指令 


基本介绍  

nginx的memcached_module模块可以直接从memcached服务器中读取内容后输出,后续的请求不再经过应用程序处理,如php-fpm、django,大大的提升动态页面的速度。nginx只负责从memcached服务器中读取数据,要往memcached写入数据还得需要后台的应用程序来完成,主动的将要缓存的页面缓存到memcached中,可以通过404重定向到后端去处理的。 

 nginx 只负责'从memcached'读取'指定'的'缓存数据'  --> nginx'只负责从memcached读'

后台'应用程序'通过'相关逻辑'将要'缓存的页面'推送到memcached,方便nginx'去调用' -->'后台程序负责写'

 

Nginx 的 ngx_http_memcached_module 模块本身并没有提供缓存功能,它只是一个将用户请求转发到 Memcached 服务器的代理模块。 

安装添加模块 

安装第三方模块:ngx_http_php_memcache_standard_balancer-master

  • 解压到path/ngx_module
  • 配置:./configure --prefix=/xxx/xxx-add_module=path/ngx_module
  • 编译安装:make && make install

模块配置指令 

server {
    location / {
        set            $memcached_key "$uri?$args";  # 设置Memcached缓存key
        memcached_pass 127.0.0.1:11211;              # 设置被代理Memcached地址
        error_page     404 502 504 = @fallback;      # 返回状态码404、502、504时跳入内部请求
    }

    location @fallback {
        proxy_pass     http://backend;               # 将请求转发给后端服务器
    }
}
指令名称指令值格式默认值指令说明
memcached_bindaddress[transparent]
或 off
--设置从指定的本地 IP 地址及端口与 Memcached 服务器建立连接,指令值可以是变量。指令值参数为 transparent 时,允许将客户端的真实 IP 透传给被代理服务器,并以客户端真实 IP 为访问被代理服务器的源 IP,指令值为 off 时,则取消上一层指令域同名指令的配置
memcached_buffer_sizesize4k 或 8k设置用于读取 Memcached 服务器,读取响应数据缓冲区的大小,当 Nginx 收到响应数据后,将同步传递给客户端
memcached_connect_timeouttime60sNginx 与 Memcached 服务器建立连接的超时时间,通常不应超过 75s
memcached_force_rangeson 或 offoff启用来自 Memcached 服务器的缓存和未缓存响应的 byte-range 请求支持,而不考虑这些响应头中的 Accept-Ranges 字段
memcached_gzip_flagflag--启用对 Memcached 服务器缓存数据 fags 的测试,flags 为客户端写入缓存时的自定义标记,此处用以判断缓存数据是否被压缩存储,如果数据被压缩存储,则将响应头字段 Content-Encoding 设置为 gzip
memcached_next_upstreamerror、timeout、
invalid_header、
not found 或 off...
error timeout当出现指令值中指定的条件时,将未返回响应的客户请求传递给 upstream 中的下一个服务器
memcached_next_upstream_timeouttime0设置将符合条件的客户端请求传递给 upstream 中下一个服务器的超时时间。0 为不做超时限制,遍历完所有上游服务器组中的服务器为止
memcached_next_upstream_triesnumber0设置符合条件的客户端请求传递给upstream中下一个服务器的尝试次数,包括第一次失败的次数。0为不做尝试次数限制,遍历完所有上游服务器组中的服务器为止
memcached_passaddress--设置 Memcached 服务器的地址及端口,地址可以是 IP、域名或 UNIX 套接字
memcached_read_timeouttime60s在连续两个从 Memcached 服务器接收数据的读操作之间的间隔时间超过设置的时间时,将关闭连接
memcached_send_timeouttime60s在连续两个发送到 Memcached 服务器的写操作之间的间隔时间超过设置的时间时,将关闭连接
memcached_socket_keepaliveon 或 offoff设置 Nginx 与 Memcached 服务器的 TCP keepalive 行为的心跳检测机制,默认使用操作系统的 socket 配置,若指令值为 on,则开启 SO_KEEPALIVE 选项进行心跳检测

 $memcached_key

定义从 memcached 服务器获取响应的键。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个风轻云淡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值