上传图片到fastDfs时显示超时
报错截图如下:
控制台报错:
java.net.SocketTimeoutException: connect timed out
错误分析与解决办法:
-
一种情况是上传的文件过大导致的,换一个较小的文件重试即可。如果还是不行,再进行下面的步骤
-
当进行上传文件操作后,立刻提示连接超时,但是真正的连接超时是连接的时间过长导致的,秒超时则是因为防火墙的缘故
-
知道错误的原因,现在开始排查防火墙:
-
tracker的端口默认是22122,tracker负责负载均衡
-
storage的端口默认是23000,storage是文件真正存储的位置
-
检查这两个端口是否开启:
不同的操作系统,查看的方法也不近相同,大家可以自行查阅相关方法,本案中fastDfs部署在Docker中,因此,这边将演示的是CentOs7的操作
检查允许访问的端口:
firewall-cmd --permanent --zone=public --list-ports
结果:
8080/tcp 80/tcp 6379/tcp 3306/tcp 8888/tcp 7777/tcp 6666/tcp 5269/tcp 22122/tcp
分析:
根据前面的分析,端口23000和端口22122都要打开,因此我们只需要打开23000端口即可
-
-
解决问题
-
打开端口(CentOS7的命令):
firewall-cmd --permanent --zone=public --add-port=23000/tcp
-
重启防火墙
firewall-cmd --reload
-
总结:
fastDfs有两个端口需要我们打开,一个是tracker的端口(默认是22122),另一个是storage的端口(默认是23000),我们需要更改防火墙配置,使得可以访问这两个端口即可解决问题!