php+gridfs+varnish+nginx 搭建分散式圖片儲存
優勢
1 資料遷移方便,所有資料基於mongodb-grids儲存,分散式配置,資料遷移等操作非常方便
2 mongodb 穩定性 可靠性 要比其他分散式檔案儲存效能更好
3 基於varnishd做快取,有效解決了 從gridfs讀取資料需要查詢2次的問題,提高了效能
4 使用方便,程式碼行數寥寥無幾,輕鬆搞定,各項配置也很簡單
5 nginx-gridfs 外掛可以基於nginx直接使用,無需再用php從mongodb中讀取資料生成圖片
=============================================
1編譯安裝php的mongodb擴充套件
https://github.com/mongodb/mongo-php-driver/downloads
下載最新版
$ cd mongo-php-driver
$ phpize
$ ./configure --with-php-config=/path/to/php-config
$ make
$ make install
2編譯安裝nginx &nginx-gridfs
https://github.com/mdirolf/nginx-gridfs
下載最新版
$ ./configure --add-module=/path/to/nginx-gridfs/source/
$ make
$ make install
3 安裝varnishd
安裝步驟 參見 http://lnmp.in/install-varnish
PHP測試gridfs寫入
PHP:
$conn = new Mongo();
$db = $conn->photo;
$grid = $db->getGridFS();
$data = file_get_contents("http://xxx.com/20120303/6f73/6a69/6d64597a/1330782227306.1400.467.467.jpg");
$id = $grid->storeBytes($data);
var_dump($id);
nginx 的配置檔案
server
{
listen 8080;
server_name photo.com;
index index.html index.php index.htm;
location /photo/
{
gridfs photo field=_id type=objectid;
default_type image/jpeg;
mongo 127.0.0.1:27017;
}
}
varnishd 部分配置
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
if (req.http.host ~ "photo.com")
{
unset req.http.cookie;
return (lookup);
}
}
sub vcl_deliver
{
set resp.http.Expires = "Sun, 17 Feb 2013 05:00:00 GMT";
unset resp.http.X-Varnish;
unset resp.http.Age;
unset resp.http.Via;
unset resp.http.Connection;
set resp.http.Cache-Control = "max-age=2592000";
set resp.http.Last-Modified = "Sat, 24 Dec 2011 01:24:34 GMT";
if (obj.hits > 0)
{
set resp.status=304;
}
}
啟動varnishd
/usr/local/varnish/sbin/varnishd -f /usr/local/varnish/etc/varnish/default.vcl -s malloc,1G -a 127.0.0.1:80
本文僅僅是提供了一個示例,全部程式碼要自己根據情況修改哈~ 首次發文,請大牛拍磚
原文來自我的blog http://lnmp.in
我的微博 http://weibo.com/pojaaer 求粉~~~
相關文章
- FastDFS+Nginx搭建分散式圖片儲存ASTNginx分散式
- 海量圖片儲存,杉巖分散式物件儲存輕鬆應對分散式物件
- 杉巖海量圖片分散式儲存解決方案分散式
- CEPH分散式儲存搭建(物件、塊、檔案三大儲存)分散式物件
- 儲存圖片
- Hadoop HDFS 3.3.1分散式儲存搭建Hadoop分散式
- Redis 分散式儲存Redis分散式
- HDFS分散式儲存分散式
- docker筆記39-ceph分散式儲存的搭建Docker筆記分散式
- DAOS 分散式非同步物件儲存|儲存模型分散式非同步物件模型
- 分散式儲存ceph 物件儲存配置zone同步分散式物件
- 分散式儲存最全詳解(圖文全面總結)分散式
- 分散式儲存轉崗記分散式
- Gartner:浪潮儲存進入分散式儲存前三分散式
- 儲存圖片到SD卡SD卡
- asp.net儲存圖片ASP.NET
- 哪些企業需要分散式式儲存?分散式
- 分散式圖片系統分散式
- 分散式儲存glusterfs詳解【轉】分散式
- GlusterFS企業分散式儲存【轉】分散式
- python如何分散式儲存檔案?Python分散式
- 什麼是HDFS 分散式儲存分散式
- C# 截圖並儲存為圖片C#
- 【轉】mysql儲存圖片技術決定:儲存二進位制檔案還是隻儲存圖片相對路徑,圖片放在硬碟上面?MySql硬碟
- 移動端長按儲存、取消長按儲存圖片
- Acrobat怎麼批量儲存PDF小圖片?adobe Acrobat一鍵儲存pdf小圖片的技巧BAT
- Acrobat怎麼批次儲存PDF小圖片?adobe Acrobat一鍵儲存pdf小圖片的技巧BAT
- 004.MinIO-DirectPV分散式儲存部署分散式
- Ceph分散式儲存技術解讀分散式
- Bayou複製分散式儲存系統分散式
- 杉巖分散式儲存解決方案分散式
- GlusterFS分散式儲存學習筆記分散式筆記
- iOS實現點選圖片放大&長按儲存圖片iOS
- 如何搭建一個高可用、高擴充套件的圖片儲存功能套件
- Python中scrapy下載儲存圖片Python
- Android儲存多張圖片到本地Android
- 圖片儲存-從七牛到 GithubGithub
- cocos2dx之儲存截圖圖片
- 分散式儲存產業方陣:2022年分散式儲存發展白皮書(附下載)分散式產業