gridFS读取MongoDB的图片及文件

2019-11-26 16:35 来源:未知

最近在部署公司服务器的nginx + mongodb + gridfs环境;

1、下载安装包:

搜索了N多文档,基本上都一样,期间遇到很多问题;

2、解压:
tar -zxvf mongodb-linux-x86_64-3.2.3.tgz

下面是整理的一份搭建文档: 

3、指定安装目录(将解压文件移动到“/usr/local/mongodb”文件夹中):
mv mongodb-linux-x86_64-3.2.3 /usr/local/mongodb

摘要 nginx-gridfs是一个nginx的扩展模块,用于支持直接访问MongoDB的GridFS文件系统上的文件并提供 HTTP 访问。

4、在mongodb文件夹中创建数据文件目录和log文件目录:
cd /usr/local/mongodb
mkdir data
mkdir logs

 

金沙棋牌,5、在mongodb/bin目录下创建配置文件mongodb.conf
cd bin/
vi mongodb.conf
配置信息如下:
dbpath = /usr/local/mongodb/data #数据文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录
port = 27017  #端口
fork = true  #以守护程序的方式启用,即在后台运行
nohttpinterface = true

一、安装mongodb

6、启动mongodb程序(使用配置文件mongodb.conf定义的参数启动):
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf

MongoDB在linux下是无需安装的,从官网上下载下安装包后解压,直接执行mongod,就可以启动MongoDB服务器,当然mongod还有很多的启动选择项,运行mongod --help就可以查看所有的选择项。

配置开机自启动mongodb
vi /etc/rc.d/rc.local  
在文件中加入: 
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf  

注:很多人搭建完后,发现访问不了图片和文件,跟Mongodb的配置有很多关系;附上我成功配置的mongodb,直接解压可用;点击下载mongodb

 

例如:(下载我上面的包,解压,下面命令直接启动服务,亲测可用)

 

 ./mongod -port 10001 --dbpath ../data/ --logpath ../log/mongodb.log --fork

6、卸载:
停止服务:
sudo service mongod stop
删除软件包:
sudo yum erase $(rpm -qa | grep mongodb-org)

 

7、 删除数据和日志目录:
sudo rm -r /var/log/mongodb(日志)

停止MongoDB

sudo rm -r /var/lib/mongo(数据)

千万要强调的是千万不要使用kill -9去关闭mongod!这样数据库会不理一切直接杀死该进程,会使得数据文件损坏。
稳妥的方法是使用kill -2 pid去关闭mongod,也就是当mongod进程接受到关闭指令后会等待当前运行操作或文件分配等操作完毕后,关闭所有打开的连接,并将缓存的数据刷新到磁盘后才正式关闭。
最稳妥的方式是使用shutdown命令来结束

 

> use admin
switched to db admin
> db.shutdownServer();

8、Mongodb远程连接

 

1)、执行命令sudo netstat -nputl  查看mongodb的监听ip和端口

 

如果为tcp        0      0 127.0.0.1:27017             0.0.0.0:*                   LISTEN      835/mongod

二、安装nginx及nginx-gridfs

说明只能本机连接

依赖库、工具

 

1

2

# yum -y install pcre-devel openssl-devel zlib-devel

# yum -y install gcc gcc-c++

2)、修改文件/etc/mongodb.conf

如上几个依赖库,如果自动安装不成功,可手动安装;

 

Pcre下载https://sourceforge.net/projects/pcre/files/pcre/

bind_ip = 127.0.0.1这一行替换为

下载nginx-gridfs源码

bind_ip = 本机IP地址

1

2

3

4

5

# git clone https://github.com/mdirolf/nginx-gridfs.git

# cd nginx-gridfs

# git checkout v0.8

# git submodule init

# git submodule update

重新运行上面的代码,测试通过。

如上操作方法,可本地GIT下来再上传到服务器,也可直接在服务器GIT

 

下载nginx源码,编译安装。

 

1

2

3

4

5

# wget http://nginx.org/download/nginx-1.4.7.tar.gz

# tar zxvf nginx-1.4.7.tar.gz

# cd nginx-1.4.7

# ./configure --prefix=/usr/local/nginx   --with-openssl=/usr/include/openssl --add-module=../nginx-gridfs/

# make -j8 && make install -j8

3)、MongoDB连接远程服务器的命令格式如下:
mongo 远程主机ip或DNS:MongoDB端口号/数据库名 -u user -p password
MongoDB连接远程服务器的命令示例代码如下:
//使用默认端口连接MongoDB
mongo 192.168.1.100
MongoDB shell version: 2.4.8
connecting to: 192.168.1.100/test

 

//连接MongoDB并指定端口
mongo 192.168.1.100:27017

修改/usr/local/nginx/conf/nginx.conf配置文件。

//连接到指定的MongoDB数据库
mongo 192.168.1.100:27017/test

注:这里说明下,nginx有两个nginx.conf的配置文件,勿配错;

//指定用户名和密码连接到指定的MongoDB数据库
mongo 192.168.1.200:27017/test -u user -p password

 

1

2

3

4

5

6

7

location /girdfstest/ {  

    gridfs pics

        field=_id

        type=objectid;

 

    mongo 127.0.0.1:10001;

}

TAG标签:
版权声明:本文由金沙澳门官网4166发布于中国史,转载请注明出处:gridFS读取MongoDB的图片及文件