Nginx memcached回退到远程服务
我不能让Nginx使用memcached模块,要求是查询远程服务,缓存memcached中的数据,永远不要获取远程端点,直到后端使缓存无效.我有2个容器,memcached v1.4.35和一个Nginx v1.11.10. 配置如下:
我试图错误地设置memcached上游,但我得到HTTP 499而不是警告:
看来配置Nginx可以成功到达memcached但无法写入或读取.我可以成功地用telnet写入和读取memcached. 你能帮我吗? 最佳答案
我猜测你的配置发生了什么
1. 499码 HTTP 499是nginx’自定义代码,表示客户端在接收响应之前终止连接(http://lxr.nginx.org/source/src/http/ngx_http_request.h#0120) 我们可以轻松地重现它
并卷曲你的资源 – curl将挂起一段时间,然后按Ctrl C – 你将在访问日志中显示此消息 2.上游服务器在连接上游时暂时禁用 这意味着nginx无法访问您的memcached并将其从上游池中删除.我只关闭两个memcached服务器,你会不断在错误日志中看到它(我每次都会看到error_log … info). 考虑明确设置http://nginx.org/en/docs/http/ngx_http_memcached_module.html#memcached_bind 3. nginx可以成功到达memcached但无法写入或读取 Nginx只能通过其内置模块从memcached中读取
4.整体架构 从您的问题中不完全清楚整体架构应该如何工作. > nginx的上游默认使用weighted round-robin. 5.做什么 我已经设法在我的本地盒子上在10分钟内设置了类似的配置 – 它按预期工作.为了减轻调试,我将摆脱docker容器以避免网络过度复杂,在单线程模式下使用-vv选项在不同端口上运行2个memcached服务器,以查看请求何时到达它们(memcached -p 11211 -U o -vv)然后玩尾巴-f和卷曲,看看你的情况真的发生了什么. 6.工作方案 nginx配置: 这里没有使用https和http / 1.1,但没关系
server.py: 这是我的虚拟服务器(python):
这是如何运行它(只需要先安装烧瓶)
填写我的第一个memcached服务器:
检查: 请注意,尽管我们存储了数据,但每次都会得到一个结果
这个不在缓存中,所以我们将从server.py获得响应
全貌: 右边的2个窗口
和
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 为什么这个Nginx配置会导致“重写或内部重定向周期”
- ubuntu – 如何调试为什么我的服务器在每个请求nginx/unic
- ubuntu-除非root用户,否则uWSGI Emperor权限被拒绝
- nginx – 如果我们不关闭cgi.fix_pathinfo,服务器是否仍然
- Nginx反向代理:post_action如果代理缓存命中 – Possbile
- Jenkins:如何在Nginx反向代理后面配置Jenkins以便JNLP从站
- 在Nginx上安装symfony2无法加载CSS
- python-对Dreamhost Passenger Django进行故障排除
- ruby-on-rails – 如何使用rails,nginx和乘客配置“Access
- Nginx:重写文件的目录路径