我正在使用nginx和spawnf-cgi与APC和memcache enabled.I'm 502浏览器坏门的方式和错误日志上的这个错误。 2013/01/07 06:55:46 [error] 90799#0: *53 upstream prematurely closed connection while reading response header from upstream, client: abcd, server: www.mysite.com, request: "GET / HTTP/1.1", upstream: "fastcgi://unix:/tmp/fcgi.sock:", host: "www.mysite.com"
我的应用程序似乎有memcached不停止的问题。 我使用PHP,并具有特定的键每小时后过期。 但是这些键和值不再被重新填充。 当我运行: /etc/init.d/memcached restart 我得到以下内容: Stopping memcached: [FAILED] Starting memcached: [ OK ] 我必须为memcached运行一个killall memcached memcached来停止。 然后我运行重启,一切都很好。 我不确定是什么原因造成这个问题,但我需要memcached每小时重新启动。 我应该在哪里找出是什么原因造成的呢?
我写了一个脚本,它允许每个cPanel用户自己运行一个memcached实例。 此时的脚本将为不同端口上的每个用户启动守护进程。 不过,我想为memcached实例设置用户名和密码,以便用户可以连接到自己的memcached实例。 有人可以提供一个提示如何实现? 谢谢!
我试图让memcached与SASL合作。 我从源代码编译memcached和libevent。 这些是我采取的步骤(都在根和用户,相同的结果): 有这些包: cyrus-sasl.x86_64 2.1.23-13.el6_3.1 @anaconda-CentOS-201303020151.x86_64/6.4 cyrus-sasl-devel.x86_64 2.1.23-13.el6_3.1 @cloudlinux-x86_64-server-6 cyrus-sasl-lib.x86_64 2.1.23-13.el6_3.1 @anaconda-CentOS-201303020151.x86_64/6.4 – mkdir -p ~/working/sasl nano ~/.bashrc 追加: export PATH=$HOME/working/bin:$PATH export LD_LIBRARY_PATH=:$HOME/working/lib:$HOME/working/include/:$LD_LIBRARY_PATH export SASL_CONF_PATH=$HOME/working/sasl export MEMCACHED_SASL_PWDB=$HOME/working/sasl/my.sasldb – . ~/.bashrc wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz tar zxvf libevent-2.0.21-stable.tar.gz cd libevent-2.0.21-stable ./configure –prefix=$HOME/working make make install cd ~ wget http://www.memcached.org/files/memcached-1.4.16.tar.gz tar zxvf memcached-1.4.16.tar.gz cd memcached-1.4.16 ./configure –enable-sasl –enable-sasl-pwdb […]
我正在将一个php网站(使用elgg – www.elgg.org构build)从CentOS服务器移动到另一个Debian 7服务器,并在两者上安装了memcached + php5-memcache。 我已经在Debian 7机器上重新创build了所有必要的设置步骤来激活memcache并让php站点使用它 – 但是,当我查看站点时,我在日志中看到以下内容: PHP WARNING: "Memcache::getversion(): php_network_getaddresses: getaddrinfo failed: Name or service not known" in file /mysite/ElggMemcache.php (line 88) PHP message: "Memcache::getversion(): php_network_getaddresses: getaddrinfo failed: Name or service not known" in file /mysite/engine/classes/ElggMemcache.php (line 88)" while reading response header from upstream, client: 127.0.0.1, server: mysite.com 从我可以告诉(并根据在线阅读其他相关的线程) – PHP代码是无法连接到memcache服务器进程。 […]
Memcache的PHP手册对memcache.session_redundancy选项没有任何解释。 该页面(4岁)的评论说,它设置会话对象的副本数量。 在memcache的另一个老问题, 这个答案说,值应该是N + 1,N是没有。 池中的服务器。 我正在设置三个LAMP服务器,使用php5-memcache来分享他们的会话。 我已经离开memcache.session_redundancy默认2,它工作正常。 什么是memcache.session_redundancy指令? 我应该将其更改为4(3台服务器+ 1)吗?
我正在AWS上设置一个新的服务器实例,并遇到了一些我不知道如何处理的东西。 我之前和之后在数字海洋上设置了完全相同的configuration,根本没有发生问题。 当我执行nginx -t来检查configuration时,我回到了包含memcached_pass的行的引用(请参阅下面的confconfiguration)。 nginx: [emerg] unknown directive "memcached_pass" 我是否缺less一些需要安装的软件包? 检查了文档,但不能真正find任何可以解释这一点的东西。 这是我在其他服务器上的Ubuntu上使用的相同的设置。 我知道的机器之间的唯一区别是Ubuntu版本14.04.1 LTS和12.04.4 LTS在那些工作。 这会有什么影响吗? configuration: location /embed/view { default_type "text/html; charset=utf-8"; set $memcached_key $uri; memcached_pass 127.0.0.1:11211; error_page 404 502 @fallback_embed; }
我正在努力确保我们的应用程序在caching完全中断的情况下正常降级,这是非常不可能的,因为通过PHP的memcached addServer API调用,至less有3个caching节点添加到caching池。 但是,单个节点可能会失败,我需要确保memcached api正确处理这种情况。 这是我目前的cache.ymlconfiguration port: 11211 <?php echo Hobis_Api_Cache::TYPE_VOLATILE; ?>: options: – <?php echo Memcached::OPT_CONNECT_TIMEOUT; ?>: 25<?php echo PHP_EOL; ?> #- <?php echo Memcached::OPT_DISTRIBUTION; ?>: <?php echo Memcached::DISTRIBUTION_CONSISTENT; ?><?php echo PHP_EOL; ?> – <?php echo Memcached::OPT_LIBKETAMA_COMPATIBLE; ?>: true<?php echo PHP_EOL; ?> – <?php echo Memcached::OPT_NO_BLOCK; ?>: true<?php echo PHP_EOL; ?> #- <?php echo […]
我有多个caching服务器通过Memcached :: addServers()api添加到PHP层的虚拟池中。 在容错testing期间,我注意到,使一个memcached服务器离线导致应用程序的响应时间增加到每个请求3-6秒,通常每个请求需要0.5-2秒。 根据这篇博文的build议,我已经实现了这些设置: $memcached = new Memcached(); $memcached->setOption(Memcached::OPT_CONNECT_TIMEOUT, 10); $memcached->setOption(Memcached::OPT_DISTRIBUTION, Memcached::DISTRIBUTION_CONSISTENT); $memcached->setOption(Memcached::OPT_REMOVE_FAILED_SERVERS, true); $memcached->setOption(Memcached::OPT_RETRY_TIMEOUT, 1); $memcached->addServers($servers); 但是,这些设置看起来并不能解决滞后问题。 解决问题的唯一方法是将服务器重新引入池中,然后消失。 显然这不是一个理想的解决scheme,因为解决生产问题可能需要15分钟(即可怕的上午3点)。 在研究这个问题的时候,我碰到过这个post ,里面讨论了使用moxi,听起来很有趣,但是在我介绍另外一个应用之前,我想知道别人是如何解决这些滞后问题的?
我可以在同一台服务器上同时使用Memcache和Memcached php扩展吗? 只是要清楚,所以你不要误解我的意思是这个问题,这是我的情况:我有我的网站Joomla和phpbb。 Joomla提供对memcached和memcache的支持,因为phpbb只支持memcache。 所以我打算这样做: 1)安装memcached服务器: apt-get install memcached 2)安装php-memcache用于phpbb: apt-get install php5-memcache 3)安装php-memcached用于Joomla: apt-get install php5-memcached 我的问题是: 安装并启用memcache和memcached扩展,可以同时使用不同的php应用程序吗? 这会以任何方式冲突吗? 当我在/etc/memcached.conf中将memcached服务器的内存限制设置为512M时,是否意味着这个内存限制将在memcache和memcached扩展之间共享? 这应该是一个问题,如果说memcache比memcached使用更多的内存,反之亦然? 他们都玩对方好吗? 在这样的情况下,我应该试着优先考虑只有1个PHP扩展(如只在我的情况下的任何memcache),以保持简单而没有两者之间的冲突,或者它不应该。 我的意思是,如果你们说可以同时使用这两个版本(第一季度版本),那么即使两者都可以同时使用,我还是应该使用相同的php扩展名来同时使用Joomla和phpbb如果可能,以最大限度地减less头痛? 这会在任何方面有所作为吗?