用nginx-gridFS讀取MongoDB的圖片及文件(為什么你老是配不成功?)


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

搜索了N多文檔,基本上都一樣,期間遇到很多問題;

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


摘要 nginx-gridfs是一個nginx的擴展模塊,用於支持直接訪問MongoDB的GridFS文件系統上的文件並提供 HTTP 訪問。

 

一、安裝mongodb

MongoDBlinux下是無需安裝的,從官網上下載下安裝包后解壓,直接執行mongod,就可以啟動MongoDB服務器,當然mongod還有很多的啟動選擇項,運行mongod --help就可以查看所有的選擇項。

注:很多人搭建完后,發現訪問不了圖片和文件,跟Mongodb的配置有很多關系;附上我成功配置的mongodb,直接解壓可用;點擊下載mongodb

例如:(下載我上面的包,解壓,下面命令直接啟動服務,親測可用)

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

 

停止MongoDB

千萬要強調的是千萬不要使用kill -9去關閉mongod!這樣數據庫會不理一切直接殺死該進程,會使得數據文件損壞。
穩妥的方法是使用kill -2 pid去關閉mongod,也就是當mongod進程接受到關閉指令后會等待當前運行操作或文件分配等操作完畢后,關閉所有打開的連接,並將緩存的數據刷新到磁盤后才正式關閉。
最穩妥的方式是使用shutdown命令來結束

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

 

 

二、安裝nginx及nginx-gridfs

依賴庫、工具

1

2

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

# yum -y install gcc gcc-c++

如上幾個依賴庫,如果自動安裝不成功,可手動安裝;

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

下載nginx-gridfs源碼

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

 

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

注:這里說明下,nginx有兩個nginx.conf的配置文件,勿配錯;

 

1

2

3

4

5

6

7

location /girdfstest/ {  

    gridfs pics

        field=_id

        type=objectid;

 

    mongo 127.0.0.1:10001;

}


關於這里的配置,簡單說明下:

gridfstest:訪問地址

pics:數據庫

mongo 127.0.0.1:10001  #mongo的服務器地址及端口

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


啟動nginx服務

1

# /usr/local/nginx/sbin/nginx

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

 

 

3. 測試


上傳一個文件

root@d1:~#./mongofiles put 1.jpg -db pics -t jpg            
列出庫中文件:

root@d1:~# mongofiles list -db pics

 具體mongofiles使用可百度搜索下

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

 

 

瀏覽器訪問:http://192.168.4.156/girdfstest/1.jpg

如果可以訪問圖片,則配置成功;

 


注意事項:

安裝過程中可能會遇到各種各樣的錯誤,具體看環境不同,應對處理;

主要注意點

1. Nginx啟動參數,需關聯nginx-gridfs目錄

2. Mongodb盡量不用默認端口27017,改用其他端口(安裝過程遇到默認端口訪問不了,不知道什么原因)

3. Nginx.conf配置,參數上面文檔說明

4. 如果配置不成功,訪問不了圖片;多看看nginx的錯誤日志,會有很多收獲


安裝過程中,如果還有其他問題,可以看看我前面寫的幾篇文檔;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM