Nginx之Memcached上游服务器

Memcached

Memcached是高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

Nginx中Memcached模块

在Nginx中, Memcached模块默认是开启的,它负责与memcached守护进程通信。因此,客户端和memcached守护进程之间没有直接通信,也就是说,在这种情况下,Nginx不再是充当反向代理。memcached模块使得Nginx可以使用memcached协议会话,因此,key的查询能够在请求传递到上游应用服务器之前完成。

upstream memcaches {                # 定义memcached上游服务器池
        server  10.20.21.10:11211;
        server  10.20.21.11:11211;
        server  10.20.21.12:11211;
}
server {
        location / {
                set $memcached_key "$uri?$args";         # 进行查找
                memcached_pass  memcaches;
                error_page 404=@server;                #没有查找到,则转发给@server处理,并保存处理后的值
        }
        location @server {
                proxy_pass http://127.0.0.1:80;
        }
}

解释如下:

通过memcached_pass指令使用$memcached_key变量实现key值的查找,如果memcached中没有查找到,则执行404处定义的@server来处理,这样子将请求转发到127.0.0.1:80来处理该请求,并且还会在memcached实例中插入该键/值对。

原文地址:https://blog.51cto.com/10316297/2371978

时间: 2024-08-11 21:50:58

Nginx之Memcached上游服务器的相关文章

nginx+tomcat+memcached搭建服务器集群及负载均衡

在实际项目中,由于用户的访问量很大的原因,往往需要同时开启多个服务器才能满足实际需求.但是同时开启多个服务又该怎么管理他们呢?怎样实现session共享呢?下面就来讲一讲如何使用tomcat+nginx搭建服务器集群以及如何实现session共享. 环境: apache-tomcat-6.0.29+apache-tomcat-6.0.29+jdk1.6+win7(由于自己只是做了一个demo,j就没有用到服务器系统了) 1.首先我们准备两个tomcat(tomcat1,tomcat2),并将端口

Nginx与用户和服务器之间的传输模式

1.用户发送请求给nginx,例如上传一个10G的文件,nginx会先缓存到本地,然后重新构建请求发送给上游服务器. 上游服务器响应并返回10G文件给nginx,注意,nginx会一边接收上游服务器的传输,一边把接收到的内容响应给用户,而不是先完全缓  存到本地再响应用户,大大缩短响应时间,改善用户体验.(squid是一边接受用户上传,同时一边传给上游服务器的,对上游服务器压  力较大) nginx在接收上游服务器文件的时候也存在一个问题,如果文件太大,本地不够地方缓存了,就会和上游服务器协商暂

一、zuul如何路由到上游服务器

所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 zuul在分布式项目中充当着一个网关的角色,而它最主要的功能像nginx一样针对上游服务器做反向代理.我们可以将它理解为一个服务的门面,作为客户端来说不需要再面向各式各样的服务,只需要面向zuul即可,简化了客户端与服务端的交互关系. 既然,zuul成为了客户端与服务端的中间层,那么zuul显然可以进行拦截.记录.安全管理.路由...等等各种处理.本文,将从路由这个点切入,看看路由的过

session服务器Nginx+Tomcat+Memcached集群Session共享

cookie是怎样工作的? 例如,我们创立了一个名字为login的Cookie来包含访问者的信息,创立Cookie时,服务器端的Header如下面所示,这里假设访问者的注册名是“Michael Jordan”,同时还对所创立的Cookie的属性如path.domain.expires等进行了指定. Set-Cookie:login=Michael Jordan;path=/;domain=msn.com; expires=Monday,01-Mar-99 00:00:01 GMT 下面这个Hea

Nginx之优雅处理上游服务器错误码

当上游服务器无法响应请求时,便会返回50x状态码,这里我们可以进行错误优化处理,会显示的更加友好. 示例如下: # 方法1:从本地磁盘提供错误页面 server { error_page 500 502 503 504 /50x.html; location =/50x.html { root html; } # 方法2:从外部网站提供错误页面 server { error_page 500 http://www.test.com/50x.html; } 若这里为代理到一组上游服务器的话,也可以

Nginx 反向代理如何连接上游服务器

92 想上游服务器先建立TCP连接 如三次握手 下面指令可以控制握手时间 proxy_next_upstream  指令当出现502可以换个上游服务器 Tcp keepalive 一般都是由进程在操作的  主要降低性能消耗 默认是off proxy_bind 应用场景 一般有两个 当Nginx上有多个IP地址时,不要使用系统默认IP地址 而主动使用某个IP地址 透传IP地址 原文地址:https://www.cnblogs.com/jackey2015/p/10431020.html

Nginx 当上游服务器返回失败时的处理办法

95 Syntax: proxy_next_upstream error | timeout | invalid_header | http_500 | http_502 | http_503 |http_504 | http_403 | http_404 | http_429 | non_idempotent | off ...; Default: proxy_next_upstream error timeout; Context: http, server, location 生效前提:没

Nginx用为缓存服务器

Nginx 缓存组成 共享内存 数据定位 存储键和缓存对象的元数据 磁盘空间: 存储数据 nginx做为反向代理时,能够将来自upstream的响应缓存至本地,并在后续的客户端请求同样内容时直接从本地构造响应报文. proxy_cache 模块 为上游服务器提供缓存功能 当客户端再请求时先从缓存中找,找到直接发给客户端: proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=one:10m max_size=1G /data/nginx/

nginx+PHP+memcached+MySQL+ip-hash做memcached集群

1.nginx与memcached整合 #安装memcached支持的事务库libevent wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libevent-2.0.22-stable.tar.gz tar zxf libevent-2.0.22-stable.tar.gz  cd libevent-2.0.22-stable ./configure --prefix=/usr/