系統介紹
由于業務需求搭建了負載均衡。有兩臺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錯誤
解決方案
在搭建同步環境時,各自服務器的環境配置的版本要完全相同。包括服務器的路徑也要完全相同。