Nginx 獨立圖片伺服器的搭建

  • 為什麼需要獨立圖片伺服器?
  • 如果你留心的話,可以發現,現在主流的網站都是有單獨的圖片伺服器的,例如,人人網的為rrimg,淘寶的為taobaocdn,下面還有很多的二級域名。

    獨立的圖片伺服器有諸多好處,其中一個就是客戶端瀏覽器對一個主機下的連接數量限制,具體的連接數目忘記了,但基本都在10以下。也就是說,瀏覽器會控制一個站點下的並發請求數量在10以下,如果對於網站有很多樣式文件、腳本文件和圖片需要載入的話,請求的過程會被阻塞,影響網站的打開速度。 Linux學習,http:// linux.it.net.cn

    建立圖片伺服器,將圖片資源放在另外一個域名下面,會在一定程度上提升網站的打開速度,這樣來說的話是不是說我們獨立的伺服器越多越好呢?也不盡然,解析域名並建立連接也需要很長的時間,獨立的主機多了的話,也不利於速度的提升。

    圖片往往會消耗掉網站中的很多寬頻和IO資源,獨立的圖片伺服器可以在寬頻和IO性能上單獨提升,便於管理和拓展。 IT網,http://www.it.net.cn

    關於網站性能方面的經驗有很多,最為著名的就是雅虎的14條準則。

    Linux學習,http:// linux.it.net.cn

    Linux學習,http:// linux.it.net.cn

  • 搭建獨立圖片伺服器的思路是什麼?
  • 圖片伺服器的搭建思路也不難,我大概畫了一個圖,顯示的是我最近兩天搭建圖片伺服器的思路。

    網站伺服器是Apache + Tomcat, 以前圖片的資源全部在tomcat的工程目錄下面,隨著圖片數量的增多,對於圖片的管理很不方便,網站的打開速度也不理想。

    新的圖片伺服器用Nginx作為web server,這裡有一篇文章分析了lighttpd、apache和nginx的性能,還是值得一看的。

    面臨的一個問題就是用戶上傳圖片的問題,因為上傳的邏輯還是在原來的伺服器上,因此,怎麼同步兩個伺服器上的圖片是個需要解決的問題。

    往往網站需要一張圖片的多個尺寸來滿足不同的需求,我們也是不例外的,所以,我想到了將用戶上傳的源圖片保存在網站伺服器上,通過源圖片來生成不同尺寸的圖片通過ftp的方式保存到圖片伺服器上,源圖片也相當於做了一個備份。

    java 操作ftp十分方便,這也是我選擇用ftp的方式來同步圖片的原因。 Linux學習,http:// linux.it.net.cn

    所以,需要在圖片伺服器上搭建ftp服務,這個教程有很多,不再羅嗦。不過我想提的一點是,red hat企業版有selinux,貌似是個安全機制,需要關掉這個才能上傳。

    圖片伺服器上面搭建了tomcat容器的原因是網站需要的圖片尺寸有將近20種,沒有辦法保存每個縮略圖,因此用java來實現動態縮放圖片的功能,就是類似於 190_h100_w200.jpg 這種格式,長寬隨便換。具體的實現方法,有空再寫吧。

    因為動態生成圖片比較耗費資源,因此用在較少訪問的頁面上,減少了縮略圖的個數。

    (責任編輯:IT)


    推薦閱讀:

    淺談前端線上部署與運維
    nginx 一二事(2) - 創建虛擬靜態伺服器
    利用nginx fastcgi_cache及golang-lru解決介面瓶頸
    apache和nginx那點事兒--阻塞和非同步

    TAG:圖片 | 伺服器 | 獨立 | Nginx |