系统介绍
由于业务需求搭建了负载均衡。有两台A和B服务器做数据同步。
产生的问题
服务器同步代码并开启编译缓存后,会出现500错误.
如果关闭编译缓存就会正常。删除编译缓存后会正常。再次生成编译缓存后还是会出现500错误。
问题产生的原因
由于系统编译缓存时,代码调用了服务器的物理路径。由于环境搭建是两台同步服务器的物理路径是不同的。
A服务器:/usr/local/A/xxx
B服务器:/usr/local/B/xxx
代码:require 了服务器的绝对路径后
由于服务器编译缓存了。如果A服务器缓存的那么获取的绝对路径就是A服务器的地址。
当负载分配资源到B服务器时,因为B服务器同步了A的资源包括编译缓存。导致B服务器require了A服务器的资源。所有会reqire不到资源。导致代码错误。产生了500错误
解决方案
在搭建同步环境时,各自服务器的环境配置的版本要完全相同。包括服务器的路径也要完全相同。