IDO老徐,在深圳,某上市公司质量部负责人,干了十二年软件测试,公号"简尚" ,博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300

IDO老徐:用nginx-gridFS读取MongoDB的图片及文件(为什么你老是配不成功?)

上一篇 / 下一篇  2016-05-25 13:32:48 / 个人分类:测试职业发展


6c |s y_ AV8^0

O-\H7Sb7HH4x0

最近在部署公司服务器的nginx + mongodb + gridfs环境;51Testing软件测试网eUaC*E

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

W*Q4I&W yYc0

下面是整理的一份搭建文档: 51Testing软件测试网m:r8N6gj7~o8q


6EKsr8fa6Mr a0

摘要 nginx-gridfs是一个nginx的扩展模块,用于支持直接访问MongoDB的GridFS文件系统上的文件并提供 HTTP 访问。51Testing软件测试网ml7t B2|&?%m

 51Testing软件测试网"iA$l;w;V*@4IL

一、安装mongodb

)CuQZ:R7j K0

MongoDBlinux下是无需安装的,从官网上下载下安装包后解压,直接执行mongod,就可以启动MongoDB服务器,当然mongod还有很多的启动选择项,运行mongod --help就可以查看所有的选择项。51Testing软件测试网D9]P&rl

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

R @NgOh {H0

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

v9n{/T jg oK0

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

dghd-m!Y'ce0

 

2I}K i6[F)`7D(O5S0

停止MongoDB51Testing软件测试网8W[ _0L OrWop

千万要强调的是千万不要使用kill -9去关闭mongod!这样数据库会不理一切直接杀死该进程,会使得数据文件损坏。

[i"C'L:t!Zho0

稳妥的方法是使用kill -2 pid去关闭mongod,也就是当mongod进程接受到关闭指令后会等待当前运行操作或文件分配等操作完毕后,关闭所有打开的连接,并将缓存的数据刷新到磁盘后才正式关闭。

$}4c}J9M ddv0

最稳妥的方式是使用shutdown命令来结束51Testing软件测试网y` n`LRgk

> use admin51Testing软件测试网 x7A y6D ve@:x0C

switched to db admin51Testing软件测试网 mE?A/g4Y}?U:v r

> db.shutdownServer();

&fu'w8V!cMc0

 51Testing软件测试网n6W9W.m|Dp3FU

 

C{P'X4qO!LV~9[0

二、安装nginx及nginx-gridfs51Testing软件测试网E'?Tcr,bx

依赖库、工具

A4y0k*W`%ASc0

151Testing软件测试网!YNH2_ e.h

251Testing软件测试网0R(H WE.Z)t+LAk

# yum -y install pcre-devel openssl-devel zlib-devel51Testing软件测试网v3?L'aCV

# yum -y install gcc gcc-c++

U.^.xr T\`0

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

8ZCGY#}[Y0

下载nginx-gridfs源码51Testing软件测试网,?4T*P9~-V{-s1t uM

1

1a$hP A2r {O0

2

y}{K'GT/^/V-h*T0

3

w SK;i"w E@tV|([0

4

Q ]9\'S&}*}}q0

5

^ Ww1kO'EYd0

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

z kP,y"\#dP9g0

# cd nginx-gridfs51Testing软件测试网A `-_$\@]0\!em

# git checkout v0.8

AzU k*y!c,P0

# git submodule init

5fk ?%ISC0

# git submodule update

R"Yv!z2IB e0

如上操作方法,可本地GIT下来再上传到服务器,也可直接在服务器GIT51Testing软件测试网?$K,gV;jT9\UU9d+B

下载nginx源码,编译安装。

aD{ K%c6~/`K0

1

M \9K7NH7F-Di0

251Testing软件测试网BebS"kDc8h^

351Testing软件测试网:OV2U+g:ZA4];D

4

Lmf&m~%M(N0

551Testing软件测试网Z+n+k&Ku

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

H7y7Yu R_4fq0

# tar zxvf nginx-1.4.7.tar.gz

S-Od7Bwz0V'l0

# cd nginx-1.4.7

-S_(y3JwbHv0

# ./configure --prefix=/usr/local/nginx   --with-openssl=/usr/include/openssl --add-module=../nginx-gridfs/51Testing软件测试网X,A@.opT"n E

# make -j8 && make install -j8

2?.UT(}hZ[7[M0

 

-n,v4^ I3? AgM;I}6ej0

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

3Sz0aX iT[0

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

S)Jl Nw.M-z0

 

r7C e){1](S-d0

1

6W'XYU,_y.OoF0

251Testing软件测试网8l GzG^,XgD

3

Gtl-OC p!@-_0

451Testing软件测试网A,oQn6l Fo)K;qt

551Testing软件测试网[G|2ib2K6C(q

6

8ef_p-s9U.ha\0

751Testing软件测试网Tr/?+P C0Kl:ZU

location /girdfstest/ {  

eG?:KS'b0I0

    gridfs pics51Testing软件测试网7_sV\ ~)@

        field=_id

F*J:\#Q6rx f0

        type=objectid;

DFbxn_ p0

 51Testing软件测试网\A3nG{)r:TJ n:P

    mongo 127.0.0.1:10001;51Testing软件测试网3I!rJIzkc)u4h5R)j

}51Testing软件测试网j1j:o+^#?r


关于这里的配置,简单说明下:

6u%h$^T)tCQb0

gridfstest:访问地址51Testing软件测试网)_RKV&ZyV``{H

pics:数据库51Testing软件测试网)w9@)FsA.F'r1T1v9^

mongo 127.0.0.1:10001  #mongo的服务器地址及端口51Testing软件测试网0o|SZ:Q

--------------------------------------

]Mx*}~:zgg0


51Testing软件测试网JKLDa%\

启动nginx服务

4N ri/Q;O7f/C0

1

&Rl"^%_~`L^0

# /usr/local/nginx/sbin/nginx51Testing软件测试网"e)\a-j!\'iFF

重新加载 /usr/local/nginx/sbin/nginx -s reload

0os#O{7{g Q;d.`0

 

&j1~q5w i ^I0

 51Testing软件测试网SG~6XGVE

3. 测试

q5]JYf.Y*Im0


51Testing软件测试网,a7f N o H-n&I9V!v

上传一个文件51Testing软件测试网 J-gh*y@0s"R \

root@d1:~#./mongofiles put 1.jpg -db pics -t jpg            

~*B_g [4l4Q-h5Wd0

列出库中文件:

Ei O? B1O0

root@d1:~# mongofiles list -db pics51Testing软件测试网+P~za X_5fR-}

 具体mongofiles使用可百度搜索下51Testing软件测试网z}|)p8Oi8_.|

或者直接./mongofiles --help查看帮助

)^o)[Z,C"my0

 51Testing软件测试网{c^.n)nJj)]

 

a,Cyq UHR0

浏览器访问:http://192.168.4.156/girdfstest/1.jpg51Testing软件测试网-Su/V#o(F{

如果可以访问图片,则配置成功;

&N#CON)ftOQ0

 

L,{,\5c*j fMv0


51Testing软件测试网aG$PP?f

注意事项:51Testing软件测试网3o/|"o$y#Rtj

安装过程中可能会遇到各种各样的错误,具体看环境不同,应对处理;

kdrQhh4n0

主要注意点51Testing软件测试网ca.|\mP

1. Nginx启动参数,需关联nginx-gridfs目录51Testing软件测试网+e&[]\q-Qy s;U

2. Mongodb尽量不用默认端口27017,改用其他端口(安装过程遇到默认端口访问不了,不知道什么原因)

K3tN2Lor-c%?Z0

3. Nginx.conf配置,参数上面文档说明51Testing软件测试网,q$_[(Wo!A7X'~e-?2op g

4. 如果配置不成功,访问不了图片;多看看nginx的错误日志,会有很多收获51Testing软件测试网_,g&MJ%E&N)a g@.Q\


/aSD7~$` Y]0

安装过程中,如果还有其他问题,可以看看我前面写的几篇文档;51Testing软件测试网 Cy p$A6Qx I

1ks,dP,U8t0

51Testing软件测试网(e!`4]g4klp5M~


相关阅读:

TAG: MongoDB mongodb mongoDB nginx Nginx NGINX gridfs

IDO老徐测试窝|软件测试圈 引用 删除 xuquan   /   2016-05-25 13:40:42
这是老徐很久前的一篇文章,需要的同学可以看看
 

评分:0

我来说两句

xuquan

xuquan

IDO老徐,坐标深圳,测试经理,干了十年测试,公号"简尚" ,个人博客isTester.com ,关注「软件测试从业者综合能力提升」,微信957863300

日历

« 2024-04-02  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 912060
  • 日志数: 427
  • 建立时间: 2012-06-04
  • 更新时间: 2022-02-23

RSS订阅

Open Toolbar