動態(tài)頁面正文部分中文亂碼排障一例
公司網(wǎng)站一部分動態(tài)頁面,早先使用apache+resin的架構(gòu)運行,考慮到高并發(fā)訪問下的響應性能問題,在前不久逐步開始用nginx替換掉了apache。
不過隨后發(fā)現(xiàn)了一個問題,隨意進入某一有分頁的網(wǎng)頁,第一頁是正常的(因為靜態(tài)化過了);點“下一頁”,出來的頁面兩邊正常,中間部分的標題、關(guān)鍵字等也正常,唯獨每個標題下的正文無法正常顯示。
因為有做過系統(tǒng)調(diào)整,所以第一反應就是新上的nginx配置有問題。按照經(jīng)驗,可能是nginx.conf中指定的chaset與borwser不一致?但選定utf8后現(xiàn)象依舊,何苦同一頁面內(nèi)的其他字符又是正確顯示的~~~
然后通過內(nèi)網(wǎng)IP+端口的方式,直接向resin請求抓取到的亂碼頁面url。結(jié)果,nginx+resin的機器顯示亂碼,apache+resin的機器顯示中文——由此確認問題不是nginx,而是resin的!
diff兩臺機器的resin.conf,除了開啟的端口外,沒有任何不同的地方。
檢查兩臺機器的環(huán)境變量,發(fā)現(xiàn)nginx這臺的LANG是zh_CDN:gbk(靜態(tài)化程序有需求),而apache這臺是utf8。試著也修改成utf8然后重啟resin,訪問結(jié)果依然不對。
這下基本沒招了……完全一樣的環(huán)境和配置,取的同一臺nfs的數(shù)據(jù),為啥就能顯示不同呢?難道是編譯參數(shù)的問題?
去sharepoint上下載公司文檔,查看原先的resin都使用了那些configure選項。結(jié)果發(fā)現(xiàn)為了配合apache,使用了–with-apache等。莫非就是因為這個原因?qū)е聄esin脫離apache運行出現(xiàn)問題了?
下載和現(xiàn)行resin版本一致的源碼報,不再with-apache編譯完成,cp一份conf過來,改用另一個端口啟動,然后通過這個端口訪問那個url,結(jié)果顯示正常了!
替換下原先的resin,把nginx的upstream指向新resin,故障解決。
看來以后再替換apache+resin成nginx+resin的時候,resin也要重新編譯一個了……
本文僅代表作者觀點,版權(quán)歸原創(chuàng)者所有,如需轉(zhuǎn)載請在文中注明來源及作者名字。
免責聲明:本文系轉(zhuǎn)載編輯文章,僅作分享之用。如分享內(nèi)容、圖片侵犯到您的版權(quán)或非授權(quán)發(fā)布,請及時與我們聯(lián)系進行審核處理或刪除,您可以發(fā)送材料至郵箱:service@tojoy.com






