Ged*_*lya 3 caching magento http-status-code-503
在管理员下清除Magento中的缓存后,我收到503错误"服务暂时不可用".要清楚,这是由清除缓存引起的'var/cache'.这与可能导致相同或类似问题的维护问题无关(由已删除的maintenance.flag文件解决).应用程序的根目录中不存在维护标志.我已经尝试过研究这个问题,似乎每个帖子都会回到维护问题.
有一点需要注意; 503错误是Web Server生成的.维护问题返回503但是应用程序(Magento)返回它; 所以你看到应用程序徽标,链接等等.
我检查了Web服务器日志,并生成以下错误:
539 access forbidden by rule, client: 165.225.138.177, server: , request: "POST /app/etc/local.xml HTTP/1.1"
Run Code Online (Sandbox Code Playgroud)
我检查了文件,这对我来说很明显,这是由于所有权冲突; 我更改了文件所有者,但问题仍然存在.
检查Magento错误日志,var/reports我看到以下错误:
the error log (var/reports) reflects the following error: "Mage registry key "_singleton/" already exists"
Run Code Online (Sandbox Code Playgroud)
完整的错误是:
a:5:{i:0;s:46:"Mage registry key "_singleton/" already exists";i:1;s:1157:"
#0 /data/html/app/Mage.php(223): Mage::throwException('Mage registry k...')
#1 /data/html/app/Mage.php(477): Mage::register('_singleton/', false)
#2 /data/html/app/code/core/Mage/Core/Model/Factory.php(81): Mage::getSingleton(false, Array)
#3 /data/html/app/code/core/Enterprise/UrlRewrite/Model/Url/Rewrite.php(94): Mage_Core_Model_Factory->getSingleton(false)
#4 /data/html/app/code/core/Enterprise/UrlRewrite/Model/Url/Rewrite/Request.php(114): Enterprise_UrlRewrite_Model_Url_Rewrite->loadByRequestPath(Array)
#5 /data/html/app/code/core/Enterprise/UrlRewrite/Model/Url/Rewrite/Request.php(58): Enterprise_UrlRewrite_Model_Url_Rewrite_Request->_loadRewrite()
#6 /data/html/app/code/core/Mage/Core/Model/Url/Rewrite/Request.php(116): Enterprise_UrlRewrite_Model_Url_Rewrite_Request->_rewriteDb()
#7 /data/html/app/code/core/Mage/Core/Controller/Varien/Front.php(165): Mage_Core_Model_Url_Rewrite_Request->rewrite()
#8 /data/html/app/code/core/Mage/Core/Model/App.php(365): Mage_Core_Controller_Varien_Front->dispatch()
#9 /data/html/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#10 /data/html/index.php(83): Mage::run('default', 'store')
#11 {main}
";s:3:"url";s:1:"/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:7:"default";}
Run Code Online (Sandbox Code Playgroud)
任何人都可以提供任何可能导致此问题的输入吗?
首先,对于谷歌的后代来说,这更加确定
maintenance.flag根文件夹中没有文件test.txt到根目录并确保您可以访问它)假设您已完成上述操作 - Magento系统库存将返回503错误的地方不多.第1步应检查以下内容
var/report错误报告文件有关错误的任何特定上下文.第三方扩展很可能产生503.
以下是Magento安装(CE和EE)库存中产生503错误的一些事项(EE代码因模糊担心不明确的许可/合理使用而被排除在外)
如果您使用Redis作为缓存服务器并且其锁定系统不堪重负,则系统可能会开始产生503错误.
#File: app/code/community/Cm/RedisSession/Model/Session.php
// Limit concurrent lock waiters to prevent server resource hogging
if ($waiting >= $this->_maxConcurrency) {
// Overloaded sessions get 503 errors
$this->_redis->hIncrBy($sessionId, 'wait', -1);
$this->_sessionWritten = TRUE; // Prevent session from getting written
$writes = $this->_redis->hGet($sessionId, 'writes');
if ($this->_logLevel >= 4)
{
Mage::log(
sprintf("%s: Session concurrency exceeded for ID %s; displaying HTTP 503 (%s waiting, %s total requests)\n %s (%s - %s)",
$this->_getPid(),
$sessionId, $waiting, $writes,
Mage::app()->getRequest()->getRequestUri(), Mage::app()->getRequest()->getClientIp(), Mage::app()->getRequest()->getHeader('User-Agent')
),
Zend_Log::WARN, self::LOG_FILE
);
}
require_once(Mage::getBaseDir() . DS . 'errors' . DS . '503.php');
exit;
}
Run Code Online (Sandbox Code Playgroud)
如果找不到订单,PayPal IPN控制器端点将抛出503
#File: app/code/core/Mage/Paypal/Model/Ipn.php
if (empty($this->_order)) {
// get proper order
$id = $this->_request['invoice'];
$this->_order = Mage::getModel('sales/order')->loadByIncrementId($id);
if (!$this->_order->getId()) {
$this->_debugData['exception'] = sprintf('Wrong order ID: "%s".', $id);
$this->_debug();
Mage::app()->getResponse()
->setHeader('HTTP/1.1','503 Service Unavailable')
->sendResponse();
exit;
}
//...
}
Run Code Online (Sandbox Code Playgroud)
企业版可以返回503英寸
app/code/core/Enterprise/Staging/Model/Observer.php
Run Code Online (Sandbox Code Playgroud)
如果内容登台配置值为true.
EE也可以返回503英寸
app/code/core/Enterprise/WebsiteRestriction/Model/Observer.php
Run Code Online (Sandbox Code Playgroud)
如果您在私人销售模式下运行且未授权查看销售.
| 归档时间: |
|
| 查看次数: |
7007 次 |
| 最近记录: |