最近測試手上的項目,出現(xiàn)訪問服務器的資源出現(xiàn)404的錯誤,這個是不應該會出現(xiàn)的問題,因為在此之前經(jīng)過測試是沒問題,下面是詳細情況:
創(chuàng)新互聯(lián)專注于高明企業(yè)網(wǎng)站建設,響應式網(wǎng)站設計,成都商城網(wǎng)站開發(fā)。高明網(wǎng)站建設公司,為高明等地區(qū)提供建站服務。全流程按需搭建網(wǎng)站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務1)公司的服務器都是做過nginx反向代理
2)訪問路徑是在tomcat中配置過虛擬路徑
3)前幾天服務器有做過磁盤恢復
當然如果你也遇到過這關問題,沒解決的可以參考一下,如果解決了就看一下我的解決方案是否有問題,本人剛接觸Nginx不深;
出現(xiàn)這個問題,我首先考慮應該是路徑出現(xiàn)了問題,然后去修改tomcat中的配置文件server.xml中的虛擬路徑;然后再測試,還是出現(xiàn)404;
imgss是server.xml配置的虛擬路徑,1444...png這個是要訪問的圖片;路徑是沒有問題(但是到nginx那里的時候就有問題,后面會貼出nginx的配置文件)這個是nginx返回的一個404頁面(當時沒注意到這個是nginx的);
這就奇怪了,明明服務器里面的文件都在,怎么會訪問不到,然后將之前修改的路徑改回去(因為這個路徑在此之前是做過測試,訪問沒有問題)然后去訪問該路徑下的其他的文件,
發(fā)現(xiàn)訪問居然沒有問題,是可以正常在線預覽的;然后再凈多多次測試發(fā)現(xiàn)除了jpg,png等格式的文件不能訪問,其他的都可以正常訪問;又將服務器要訪問的資源在服務器中刪除,除了jpg,png的文件,然后再重新發(fā)起訪問,出現(xiàn)了正常的404;
imgss是server.xml配置的虛擬路徑,b.PDF本來就不存在;所以出現(xiàn)404很正常;
百度了一下資料,沒有找到解決方案;
再次查看本地jdk和服務器上的jdk,都沒有問題;有的人說是打包的問題,我重新打包后,發(fā)布到服務器測試還是同樣的問題;最后想是不是nginx的配置文件的問題,然后去查看nginx的配置文件localhost;這個是配置文件的路徑/etc/nginx/sites-available/localhost
#號注釋的部分是后面加上去的,之前是沒有,這個就是nginx的反向代理的配置文件;
注意這一段: location ~ .*\.(jpg|js|html|mp3|gif|jpeg|png|bmp|swf|ico|css)$ #設定訪問靜態(tài)文件直接讀取不經(jīng)過tomcat
看到這里,相信大家也知道問題出在哪里了,當以.jpg/.png等格式文件時,它會將路徑映射到 /var/lib/tomcat7/webapps/ROOT
;本來在這個路徑下就沒有你訪問的資源當然會返回nginx的404錯誤頁面;然后嘗試將其中的jpg/png刪除掉,然后重啟服務,再次訪問,就正常了;出現(xiàn)這個問題應該是前幾天做磁盤恢復以后沒有將nginx的配置文件修改的原因;
當然最好的做法是,不用刪除.jpg/png;直接在上面添加這段代碼:
location ^~ /imgss/ { # root /data/customfiles/Files/; # expires 30d; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } location ^~ /attachments/ { # root /data/ # expires 30d; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080 }
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。