重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
最近在学习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
好了,以上就是我解决这个问题时能想到的法子了,希望能帮到大家!