最近常常有人問圖片上傳怎么做,有哪些方案做較量好,也看到過有關于上傳圖片的做法,可是都不是最好的,本日再這里簡樸講一下Nginx實現上傳圖片以及圖片處事器的大抵理念。
假如是小我私家項目可能企業小項目,僅僅只有十來號人利用的小項目,可以利用如下方案:
用戶會見系統,利用上傳圖片成果,那么圖片就上傳到你的當前項目地址的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某個表的某個字段中的,你妹啊,,我的天吶!
怎么可以這么做,況且數據庫沒有分庫分表分區建索引,好吧,這也是我的一個吐槽點,誰叫我曾經參加過呢
好吧,說了這么多都是理論,接下來的文章會詳細說說怎么做。