nginx + mongodb gridfs 实现web浏览文件

nginx + mongodb
参考
http://www.111cn.net/database/MongoDB/116127.htm


1,下载nginx 包
http://nginx.org/en/download.html 
nginx-1.11.10.tar.gz
nginx可能需要其他依赖包提前安装,可参考http://blog.csdn.net/grhlove123/article/details/47834673


2,下载nginx-gridfs源码 https://github.com/mdirolf/nginx-gridfs 下载mongo驱动源码  https://github.com/eagleas/mongo-c-driver.git 
由于服务器没装git,我用ie下载的zip包后上传到服务器


将包都传到/home/test/software下


3,解压nginx
tar zxf nginx-1.11.10.tar.gz


4,解压nginx-gridfs
unzip nginx-gridfs-master.zip
unzip mongo-c-driver-master.zip
5,两个项目合成一个
将mongo驱动包mongo-c-driver-master里的文件都移动到nginx-gridfs-master/mongo-c-driver下
mv /home/test/software/mongo-c-driver-master/* /home/test/software/nginx-gridfs-master/mongo-c-driver/


6,编译 准备将带gridfs插件的nginx安装到/opt/nginx下
cd /home/test/software/nginx-1.11.10
./configure --prefix=/opt/nginx --add-module=/home/test/software/nginx-gridfs-master
 
vi /home/test/software/nginx-1.11.10/objs/Makefile     //删除-Werror,不然make && make install的时候会报错  
cd /home/test/software/nginx-1.11.10
make && make install 


7,配置nginx
cd /opt/nginx/conf
vi nginx.conf
增加
location /images/{  
 gridfs test field=filename type=string;  
                mongo "testrs"
                192.168.8.248:27018
                192.168.8.252:27017;


}  
gridfs:nginx识别插件的关键字
test:db名
[root_collection]: 选择collection,如root_collection=blog, mongod就会去找blog.files与blog.chunks两个块,默认是fs
[field]: 查询字段,保证mongdb里有这个字段名,支持_id, filename, 可省略, 默认是_id
[type]: 解释field的数据类型,支持objectid, int, string, 可省略, 默认是int
[user]: 用户名, 可省略
[pass]: 密码, 可省略
mongo: 集群名称(集群设置时指定的,前面用的testrs)  集群多个 ip:port  
8,启动 /opt/nginx/sbin/nginx  
重启命令 /opt/nginx/sbin/nginx   -s reload
通过url可以看到图片了http://192.168.8.248/images/apple.jpg


实际上,访问会报错,因为还没往mongodb里上传东西
搞一个图片文件apple.jpg到服务器上,通过命令上传到mongodb。


mongofiles -h 192.168.8.248:27018 -d test put apple.jpg





flume是一个分布式、可靠、高可用的数据采集、聚合和传输系统。在数据采集方面,flume可以很好地与nginx、kafka、mongodb等常见的数据处理工具和数据库进行集成。下面介绍一下基于nginx+flume+kafka+mongodb实现埋点数据采集的步骤: 1. 配置nginx服务器,将所有的http请求都转发到flume服务器上。可以使用nginx的proxy_pass指令来实现。 2. 在flume服务器上,配置flume agent来接收nginx服务器转发过来的http请求,并将请求数据转发给kafka服务器。flume的配置文件中需要设置source、channel和sink三个部分,具体配置可以参考flume官方文档。 3. 在kafka服务器上,创建一个topic来存储flume发送过来的http请求数据。可以使用kafka的命令行工具kafka-topics来创建topic。 4. 在flume服务器上,配置一个kafka sink来将http请求数据发送到kafka服务器上的指定topic中。 5. 在mongodb数据库中创建一个collection来存储http请求数据。可以使用mongodb的命令行工具mongo来创建collection。 6. 在flume服务器上,配置一个mongodb sink来将http请求数据从kafka服务器中消费,并将其存储到mongodb数据库中的指定collection中。 7. 启动nginx、flume、kafka和mongodb服务,并进行测试。可以使用curl等工具模拟http请求,并查看数据是否能够被成功采集、存储到mongodb中。 以上就是基于nginx+flume+kafka+mongodb实现埋点数据采集的基本步骤。需要注意的是,具体的配置和实现过程可能会因为不同的业务需求而有所差异。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值