下面的操作是在已经搭建好fastdfs和配置好nginx代理情况下解决的
原来在虚拟机上配的,一切正常,只是虚拟机用的不是云服务器分的公网IP,都是局域网玩耍,上传下载一点问题都没。昨天刚搬到ECS云服务器上,配了公网IP一直上传不了,后来配了私网IP,在虚拟机上上传都没问题的,但是到java程序中就蒙圈了,总不能tracker_server写私网IP吧,昨天网上找了各种答案,都不行,fastdfs的issues翻遍了,还是不行,最后看了一篇文章启发了,下面是解决方法:
cd /etc/fdfs
vi tracker.conf 或 vim tracker.conf
....
port=22122 #设置tracker的端口号,通常采用22122这个默认端口
添加端口
firewall-cmd --permanent --zone=public --add-port=22122/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
service fdfs_trackerd restart
cd /etc/fdfs
vim storage.conf
tracker_server=公网IP:22122
添加端口
firewall-cmd --permanent --zone=public --add-port=23000/tcp
firewall-cmd --permanent --zone=public --add-port=8888/tcp
重启
service fdfs_storaged restart
cd /etc/fdfs
vim client.conf
tracker_server=公网IP:22122
如果还有nginx做代理(fastdfs-nginx-module)
vim /etc/fdfs/mod_fastdfs.conf
tracker_server=公网IP:22122
最后才是重点,如果是ECS,要添加安全组规则
允许 自定义 TCP 23000/23000 地址段访问 0.0.0.0/0
允许 自定义 TCP 22122/22122 地址段访问 0.0.0.0/0
允许 自定义 TCP 8080/8080 地址段访问 0.0.0.0/0
允许 自定义 TCP 8888/8888 地址段访问 0.0.0.0/0
StorageClient1 无论在哪个网段都可以上传