国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 網(wǎng)站 > Nginx > 正文

nginx反向代理服務(wù)因配置文件錯(cuò)誤導(dǎo)致訪問(wèn)資源時(shí)出現(xiàn)404

2024-08-30 12:29:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最近測(cè)試手上的項(xiàng)目,出現(xiàn)訪問(wèn)服務(wù)器的資源出現(xiàn)404的錯(cuò)誤,這個(gè)是不應(yīng)該會(huì)出現(xiàn)的問(wèn)題,因?yàn)樵诖酥敖?jīng)過(guò)測(cè)試是沒(méi)問(wèn)題,下面是詳細(xì)情況:

1)公司的服務(wù)器都是做過(guò)nginx反向代理

2)訪問(wèn)路徑是在tomcat中配置過(guò)虛擬路徑

3)前幾天服務(wù)器有做過(guò)磁盤恢復(fù)

當(dāng)然如果你也遇到過(guò)這關(guān)問(wèn)題,沒(méi)解決的可以參考一下,如果解決了就看一下我的解決方案是否有問(wèn)題,本人剛接觸Nginx不深;

出現(xiàn)這個(gè)問(wèn)題,我首先考慮應(yīng)該是路徑出現(xiàn)了問(wèn)題,然后去修改tomcat中的配置文件server.xml中的虛擬路徑;然后再測(cè)試,還是出現(xiàn)404;

imgss是server.xml配置的虛擬路徑,1444...png這個(gè)是要訪問(wèn)的圖片;路徑是沒(méi)有問(wèn)題(但是到nginx那里的時(shí)候就有問(wèn)題,后面會(huì)貼出nginx的配置文件)這個(gè)是nginx返回的一個(gè)404頁(yè)面(當(dāng)時(shí)沒(méi)注意到這個(gè)是nginx的);

這就奇怪了,明明服務(wù)器里面的文件都在,怎么會(huì)訪問(wèn)不到,然后將之前修改的路徑改回去(因?yàn)檫@個(gè)路徑在此之前是做過(guò)測(cè)試,訪問(wèn)沒(méi)有問(wèn)題)然后去訪問(wèn)該路徑下的其他的文件,

發(fā)現(xiàn)訪問(wèn)居然沒(méi)有問(wèn)題,是可以正常在線預(yù)覽的;然后再凈多多次測(cè)試發(fā)現(xiàn)除了jpg,png等格式的文件不能訪問(wèn),其他的都可以正常訪問(wèn);又將服務(wù)器要訪問(wèn)的資源在服務(wù)器中刪除,除了jpg,png的文件,然后再重新發(fā)起訪問(wèn),出現(xiàn)了正常的404;

imgss是server.xml配置的虛擬路徑,b.PDF本來(lái)就不存在;所以出現(xiàn)404很正常;

百度了一下資料,沒(méi)有找到解決方案;

再次查看本地jdk和服務(wù)器上的jdk,都沒(méi)有問(wèn)題;有的人說(shuō)是打包的問(wèn)題,我重新打包后,發(fā)布到服務(wù)器測(cè)試還是同樣的問(wèn)題;最后想是不是nginx的配置文件的問(wèn)題,然后去查看nginx的配置文件localhost;這個(gè)是配置文件的路徑/etc/nginx/sites-available/localhost

#號(hào)注釋的部分是后面加上去的,之前是沒(méi)有,這個(gè)就是nginx的反向代理的配置文件;

注意這一段: location ~ .*/.(jpg|js|html|mp3|gif|jpeg|png|bmp|swf|ico|css)$ #設(shè)定訪問(wèn)靜態(tài)文件直接讀取不經(jīng)過(guò)tomcat

看到這里,相信大家也知道問(wèn)題出在哪里了,當(dāng)以.jpg/.png等格式文件時(shí),它會(huì)將路徑映射到 /var/lib/tomcat7/webapps/ROOT ;本來(lái)在這個(gè)路徑下就沒(méi)有你訪問(wèn)的資源當(dāng)然會(huì)返回nginx的404錯(cuò)誤頁(yè)面;然后嘗試將其中的jpg/png刪除掉,然后重啟服務(wù),再次訪問(wèn),就正常了;出現(xiàn)這個(gè)問(wèn)題應(yīng)該是前幾天做磁盤恢復(fù)以后沒(méi)有將nginx的配置文件修改的原因;

當(dāng)然最好的做法是,不用刪除.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    }

/imgss/和/attachments/都是在tomcat配置文件中配置的虛擬路徑;nginx會(huì)一層層的向下匹配,匹配到合適的就將配置的路徑映射;

server.xml的虛擬路徑:

 <Context path="/imgss" docBase="/data/customfiles/Files/" debug="0" reloadable="true"/>  <Context path="/attachments" docBase="/data/" debug="0" reloadable="true"/>

比如我們要訪問(wèn)的路徑是:http://192.168.1.104/imgss/(A)/1444639216522781.png;

經(jīng)由nginx反向代理到:http://192.168.1.104/data/customfiles/Files/(A)/1444639216522781.png也就是該資源在服務(wù)器中實(shí)際的位置;

當(dāng)修改好以后,再次訪問(wèn),圖片便能成功加載了;當(dāng)然本人也是剛接觸nginx不久,如果有說(shuō)錯(cuò)的話請(qǐng)各位指教

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到服務(wù)器教程頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江安县| 泗水县| 兴业县| 延川县| 巴林左旗| 阳原县| 彰化市| 新民市| 西昌市| 东方市| 呼和浩特市| 安泽县| 仁布县| 白山市| 玛多县| 寿光市| 枣庄市| 威宁| 普洱| 柘荣县| 襄垣县| 车致| 盐池县| 咸丰县| 青田县| 宝山区| 牡丹江市| 寿光市| 茌平县| 阆中市| 恭城| 精河县| 潮安县| 抚州市| 腾冲县| 丁青县| 广丰县| 芮城县| 湛江市| 大庆市| 洪泽县|