使用Nginx搭建簡單圖片服務器

最近常常有人問圖片上傳怎麼作,有哪些方案作比較好,也看到過有關於上傳圖片的作法,可是都不是最好的,今天再這裏簡單講一下Nginx實現上傳圖片以及圖片服務器的大體理念。html

若是是我的項目或者企業小項目,僅僅只有十來號人使用的小項目,可使用以下方案:linux

用戶訪問系統,使用上傳圖片功能,那麼圖片就上傳到你的當前項目所在的tomcat服務器上,在/image下,上傳成功後用戶能夠直接訪問nginx

http://ip:port/project/images/xxx.jpg數據庫

這樣作在用戶少的時候是沒有問題的tomcat

 

當你的企業發展起來了,業務量增多了,使用的這個項目開始大起來了,發現系統速度變慢了,那麼你就考慮到集羣了對吧服務器

那麼好,假設你增長了一個tomcatB,性能提升了一點,圖片也成功上傳了,作了負載均衡,假設圖片上傳的了tomcatA(用戶是不知道的)session

第二次訪問的時候(先不考慮session粘性不粘性的問題,假設是共享的),用戶訪問到了tomcatB,圖片沒有了,是個大叉叉,併發

個人天吶!發什麼什麼事了,明明剛剛上傳的圖片沒有了,負載均衡

再刷新一下,欸!又有了?這是什麼狀況呢?jsp

後臺知道咋回事,可是用戶不知道啊!!!

 

那麼解決方案是這樣的,tomcatA和B上傳至圖片服務器,這用戶請求的時候只訪問圖片服務器的路徑,這樣就沒問題了

有人會問圖片服務器用什麼來搭建呢?

tomcat?能夠,可是tomcat主要處理jsp比較好,圖片文件是靜態資源,處理起來性能通常般

Apache?能夠,純C語言開發的,沒問題,可是還不夠好

nginx?對了,這個是目前比較流行的一個反向代理服務器,我在以前的文章有簡單介紹過(http://www.cnblogs.com/leechenxiang/p/5327086.html

  理論的單臺機子併發能達到5萬,很是的叼,實際測試是2w左右

安裝以下的方案去作,那麼圖片服務器就問題不大了,

 

固然,圖片上傳後,須要把圖片的路徑地址保存到數據庫啊~~

我曾經見到過一套電子商務系統的圖片上傳是採用方案是相似1的,這麼作沒問題,

可是呢,圖片竟然上傳到他喵的MySQL某個表的某個字段中的,你妹啊,個人天吶!

怎麼能夠這麼作,況且數據庫沒有分庫分表分區建索引,好吧,這也是個人一個吐槽點,誰叫我曾經參與過呢

 好吧,說了這麼多都是理論,接下來的文章會具體說說怎麼作。

Nginx建立虛擬靜態服務器 http://www.linuxidc.com/Linux/2016-04/130373.htm

相關文章
相關標籤/搜索