centos6.5 搭建nginx1.6.0 +gridfs +mongodb2.4..10环境
一) 缘由
因为公司业务需要,需要搭建图片服务器,需求很简单:读取+上传图片,当时第一考虑用nginx来作,但考虑到单纯用nginx来作,无法水平扩展和管理,一旦遇到海量图片,就无办法 扩展。所以考虑用文件系统来做,综合考虑最终选择用nginx+gridfs+mongodb,mongodb适用于小文件管理,而且可以分片集群,对后期维护和扩展很有帮助。
二) 环境搭建
2.1) 下载nginx1.6.0 stable版本
wget http://nginx.org/download/nginx-1.6.0.tar.gz
tar zxvf nginx-1.6.0.tar.gz
2.2) 下载gridfs-nginx 模块
git clone git://github.com/mdirolf/nginx-gridfs.git
2.3) 下载mongo-c-driver(/user/loucal/下)
git clone https://github.com/eagleas/mongo-c-driver.git
2.4) 拷贝mongo-c-driver至nginx-gridfs下
cp mongo-c_driver nginx-gridfs
2.5) 下载perl
a) 下载地址:http://sourceforge.net/projects/pcre/files/pcre/
pcre http://www.pcre.org
zlib http://www.zlib.net
openssl http://www.openssl.org
b) 将这三个包装在/usr/loucl/下
make && make install
2.6) 配置、安装nginx(红色字体注意修改路径)
a) ./configure --prefix=/usr/local/nginx --with-pcre=../pcre-8.34 --with-http_ssl_module --with-http_stub_status_module --with-http_flv_module --with-http_gzip_static_module --add-module=../nginx-gridfs --with-poll_module --without-select_module --with-http_realip_module --with-cc-opt=-Wno-error
--with-zlib=../zlib-1.2.8 --with-openssl=/usr/bin/openssl
./nginx -V 查看参数
b) make -j8
c) make install
三)下载mongodb2.4.10安装及启动
1) rpm包下载、安装、运行
1.1) 下载地址:http://downloads-distro.mongodb.org/repo
server版:mongo-10gen-server-版本号
client版:mongo-10gen-版本号
1.2) 安装
rpm -ivh 包.rpm
1.3 添加自启动项
1.3.1) 配置自启动法
a) 修改/etc/mongo.conf
自定义log、db路径
b) vim /etc/rc.local
添加 mongod --config /etc/mongo.conf
1.3.2) 命令启动法
a) 修改/etc/rc.local
mongod --dbpath=/usr/local/mongodb/data --logpath=/usr/local/mongodb/logs/mongodb.log --logappend --port=27017 --fork
四)配置nginx中的gridfs
4.1) 在/usr/lcoal/nginx/conf/nginx.conf 添加如下内容:
在server项下增加
location /img/ {
gridfs testimg field=filename type=string;
mongo 10.143.111.12:27017;
}
五) 上传图片至mongodb
sudo mongofiles put --host localhost --port 27017 --db images --local /home/1.jpg --type jpg
http://10.143.47.20/img/kongtiaolengmei.png
六) 测试图片上传是否成功
6.1) 启动nginx并在浏览器打开 http://localhost/pics/1.jpg 如果能打开,证明配置正确且上传成功