现在傻梦兽的服务器架构如下
image.png
看到这里你们会发现一个问题就是,安流量计费。只有两台主机是有宽带,其余都是内网通信。
如果文字传输的话,流量并不算大,可以这么处理。可是图片过多的时候,如果有资本的企业选择肯定是七牛云之类的服务,因为这里服务包含了(分布式、CDN、还有负载等一系列的功能),可是这类服务如果一不小心的话,超出流量那就只能喊爸爸了。
那么我们一般的小企业是如何处理这一个问题的呢?比如我现在的再搞一台固定宽带的服务器做图片服务
,然后在第一个代理服务器nginx
服务器中配置如下
location ^~ /upload {
proxy_pass http://192.168.1.15;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
然后把两台静态缓存服务器都指向192.168.1.15
,并且有一台Cache迁移到固定带宽的静态缓存服务器中。
然后再把Nginx配置,只要是静态文件都302重定向指向带宽服务器中。
笔者用的是Laravel
框架,如果只是用来跑一个图片服务器的话,那么有点血亏。也不能说不行,以后如果图片服务器要做负载的时候,你需要做再去新的主机安装一个PHP
/ Node
等程序来运行长传图片服务。
如果后期做图片负载的时候,这里会比较麻烦。
当然这也不是不好,就是用PHP来做图片服务器的话,有点不划算,那么什么是最划算呢?当然是nginx直接访问静态问文件,甚至使用node.js
或Golang
都可以,这些性能都接近Nginx。
那我们要做的是什么呢?没错我们要做的就是同步。
我们来看看修改的后是怎么一个思路
image.png我们需要把192.168.1.11
的服务器同步到192.168.1.16
和192.168.1.15
当中。
同时把静态缓存服务器也同时迁移到192.168.1.16
和192.168.1.15
当中。Nginx直接运行静态文件。
我这里用的是rsync
实现实时同步,思路说完
实践请看[# Linux运维:rsync+inotify实时同步
]没有相关经验的可以使用方案二
网友评论