最近我将我的zend应用程序从简单托管移动到azure,配置为通过nginx-> haproxy-> apache链处理请求。 nginx,haproxy和apache是docker容器。加载应用程序时,会向不同的控制器发出20-30个AJAX请求。这是我在控制器中使用的常用init方法:
public function init()
{
$this->sa = System_Auth::getInstance();
$this->data = $this->getRequest()->getParams();
$this->current = $this->sa->getCurrent();
$this->data['customer_id'] = $this->current->customer ? $this->current->customer->id : $this->current->id;
$this->_helper->contextSwitch()
->addActionContext('test', 'json')
->setAutoJsonSerialization(true)
->initContext();
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
}
所以没有什么有趣的东西。但每次我加载应用程序约3或4个AJAX请求返回500错误。每次不同的请求失败,500错误。 Apache和nginx日志为空。并且我无法转储传递给控制器的数据,因为甚至无法调用失败的控制器。 有人有想法吗?
答案 0 :(得分:0)
OK quys,最后它被修复了。
发生的地方: HaProxy和循环mariaDB集群Master-Master-Master
发生了什么: 有些查询每次都会随机失败
<强>为什么:强> 在三个mysql服务器之一上找到了sql_mode = only_full_group_by
之前我在所有服务器上清除了sql_mode变量,但稍后在重新启动其中一台服务器时恢复了该变量。并且变量不可复制,您应该在每个服务器上手动更改它们
*有可能但我现在不知道