??最近在學習fastdfs時遇到了一個困擾我數小時的問題,結果很感人,特在此記錄下來,也是為了讓其他小伙伴們避坑
??(這里我的fastdfs運行環境是在docker中) 事情是這樣的,用APIfox測驗fastdfs檔案上傳的時候發現明明回傳的成功的結果但是在瀏覽器中使用路徑卻訪問不到服務器上的圖片,瀏覽器報錯:Failed to load resource: net::ERR_SSL_PROTOCOL_ERROR(服務器拒絕訪問),起初以為是沒上傳成功,所以找到了/var/lib/docker/volumes/fdfs-data/_data/data/00/00目錄下查看圖片是存在的,也就是圖片上傳成功了但是瀏覽器無法訪問,這里給大家提供幾個思路參考,然后題最后我是docker中nginx的埠沒有配置導致無法訪問的
1. 關閉linux的防火墻
systemctl stop firewalld
systemctl disable firewalld # 禁止開機啟動
2. 瀏覽器中的擴展攔截了請求,像廣告攔截器等擴展
3. 檢查圖片路徑是否正確,格式:http://ip:埠號/group1/M00/00/00/wKjTgGN6XVaAXACdAAAVFZU5FfY629.png
4.檢查埠號(*)
因為storage內部已經集成了nginx,這里的nginx主要提供對FastDFS圖片訪問的支持,
所以要想訪問到檔案這里的nginx組態檔中的埠號需要和你專案中埠號一致才能訪問,他這里默認埠號是8080,所以你需要http://ip:8080/group1/M00/00/00/wKjTgGN6XVaAXACdAAAVFZU5FfY629.png來進行訪問,我之前是因為忘記配置埠了就直接訪問http://ip/group1/M00/00/00/wKjTgGN6XVaAXACdAAAVFZU5FfY629.png,這樣默認使用的是瀏覽器80埠所以沒訪問到
解決辦法:
- 進入docker容器(docker exec -it storage /bin/bash),修改里面nginx配置(vim /etc/nginx/conf/nginx.conf)
- 可以看到里面的listen 8080,所以跟Java專案中的組態檔fdfs配置:web-server-url: http://ip:8080/保持一致
- 也可以直接都修改成80埠用起來方便,總之看你代碼中怎么配置,兩者保持一致即可
如果修改了專案中的埠重啟專案即可
如果修改了nginx中的埠號退出容器重啟docker就能訪問了
exit #退出
systemctl restart docker #重啟docker
好了,以上就是我解決這個問題時能想到的法子了,希望能幫到大家!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/537673.html
標籤:其他
上一篇:python中的字串操作
下一篇:mybatis流式查詢與分頁插件
