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





