用nginx-gridFS讀取MongoDB的圖片及檔案(為什麼你老是配不成功?)

來源:互聯網
上載者:User

標籤:mongodb   nginx+gridfs   nginx讀取mongodb圖片   

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

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

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


摘要 nginx-gridfs是一個nginx的擴充模組,用於支援直接存取MongoDB的GridFS檔案系統上的檔案並提供 HTTP 訪問。

 

一、安裝mongodb

MongoDB在linux下是無需安裝的,從官網上下載下安裝包後解壓,直接執行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. 測試


上傳一個檔案

[email protected]:~#./mongofiles put 1.jpg -db pics -t jpg            
列出庫中檔案:

[email protected]:~# 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的錯誤記錄檔,會有很多收穫


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

 

用nginx-gridFS讀取MongoDB的圖片及檔案(為什麼你老是配不成功?)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.