nginx 一二事(1) - 簡單圖片服務器解決方案


最近經常有人問圖片上傳怎么做,有哪些方案做比較好,也看到過有關於上傳圖片的做法,但是都不是最好的

今天再這里簡單講一下上傳圖片以及圖片服務器的大致理念

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

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

http://ip:port/project/images/xxx.jpg

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

 

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

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

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

我的天吶!發什么什么事了,明明剛剛上傳的圖片沒有了,

再刷新一下,欸!又有了?這是什么情況呢?

后台知道咋回事,但是用戶不知道啊!!!

 

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

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

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

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

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

  理論的單台機子並發能達到5萬,非常的叼,實際測試是2w左右

安裝如下的方案去做,那么圖片服務器就問題不大了,

 

當然,圖片上傳后,需要把圖片的路徑地址保存到數據庫啊~~

我曾經見到過一套電子商務系統的圖片上傳是采用方案是類似1的,這么做沒問題,

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

怎么可以這么做,何況數據庫沒有分庫分表分區建索引,好吧,這也是我的一個吐槽點,誰叫我曾經參與過呢

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

 


免責聲明!

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



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