php 负载均衡文件上传,nginx负载均衡同步上传文件的问题 - SegmentFault

大神们,我现在有个问题,帮我看下:

因为使用nginx均衡负载,由于分发请求到不同服务器,这样如果只想把上传的图片只保存到一台服务器就会出问题。

百度到的方法:

第一种方法是代码里面使用ftp 把文件同步到保存服务器

第二种方法是如果不是保存文件的服务器,使用curl 把文件提交到保存服务器再重新存一次。

第三种方法就是直接使用保存服务器的ip来调接口了。第三种方法我们这边先不考虑。

不知道大神们,遇到这种情况是怎么实现这种需求的

回复内容:

大神们,我现在有个问题,帮我看下:

因为使用nginx均衡负载,由于分发请求到不同服务器,这样如果只想把上传的图片只保存到一台服务器就会出问题。

百度到的方法:

第一种方法是代码里面使用ftp 把文件同步到保存服务器

第二种方法是如果不是保存文件的服务器,使用curl 把文件提交到保存服务器再重新存一次。

第三种方法就是直接使用保存服务器的ip来调接口了。第三种方法我们这边先不考虑。

不知道大神们,遇到这种情况是怎么实现这种需求的

3 小时前提问

评论

邀请回答

请先 登录 后评论

默认排序

时间排序

2 个回答

答案对人有帮助,有参考价值

0

答案没帮助,是错误的答案,答非所问

宿主的nginx对于上传的location做特殊处理, 只让一台机器来负责文件上传, 不完美但是有效, 可以作为一段时间的过度方案

搭建一个分布式文件系统, 挂载到所有的服务器上, 处理文件上传后写只写入这个特定目录, nginx中规划一个location指向这个这个目录(例如/data/upload), 缺点就是要多维护一个这个分布式文件系统 (和你的第一种思路有点像, 但分布式文件系统不需要"同步")

使用外部CDN文件上传来解决这个问题, 七牛, 又拍云都可以

1.专门整几台服务器用来存这些静态资源;

2.整出几个盘,弄成网络盘(nfs),专门用来存储这些文件,每个服务器都去挂载这几个盘,和windows的共享文件夹类似;

3.上传成功之后返回一个文件的url,这个url就是文件的地址了;

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值