Nginx獨立圖片服務器搭建教程
發佈時間:2014-06-04編輯:腳本學堂首先,爲什麼需要獨立圖片服務器?
現在主流的網站都是有單獨的圖片服務器的,例如,人人網的爲rrimg,淘寶的爲taobaocdn,下面還有很多的二級域名。
獨立的圖片服務器有諸多好處,其中一個就是客戶端瀏覽器對一個主機下的連接數量限制,具體的連接數目忘記了,但基本都在10以下。
關鍵原因:
瀏覽器會控制一個站點下的併發請求數量在10以下,如果對於網站有很多樣式文件、腳本文件和圖片需要加載的話,請求的過程會被阻塞,影響網站的打開速度。
建立圖片服務器,將圖片資源放在另外一個域名下面,會在一定程度上提升網站的打開速度,這樣來說是否獨立的服務器越多越好呢?
也不盡然,解析域名並建立連接也需要很長的時間,獨立的主機多了的話,也不利於速度的提升。
圖片往往會消耗掉網站中的很多寬帶和IO資源,獨立的圖片服務器可以在寬帶和IO性能上單獨提升,便於管理和拓展。
關於網站性能方面的經驗有很多,最爲著名的就是雅虎的14條準則(http://developer.yahoo.com/performance/rules.html)。
其次,搭建獨立圖片服務器的思路是什麼?
圖片服務器的搭建思路也不難,我大概畫了一個圖,顯示的是我最近兩天搭建圖片服務器的思路。
(圖片服務器示意圖)
網站服務器是Apache + Tomcat,以前圖片的資源全部在tomcat的工程目錄下面,隨着圖片數量的增多,對於圖片的管理很不方便,網站的打開速度也不理想。
新的圖片服務器用Nginx作爲web server,可以參考文章:lighttpd、apache和nginx的性能對比(http://www.blogjava.net/daniel-tu/archive/2008/12/29/248883.html)。
所面臨的問題爲用戶上傳圖片的問題,因爲上傳的邏輯還是在原來的服務器上,因此,怎麼同步兩個服務器上的圖片是個需要解決的問題。
往網站需要一張圖片的多個尺寸來滿足不同的需求,因此想到了將用戶上傳的源圖片保存在網站服務器上,通過源圖片來生成不同尺寸的圖片通過ftp的方式保存到圖片服務器上,源圖片也相當於做了一個備份。
java 操作ftp十分方便,這也是我選擇用ftp的方式來同步圖片的原因。
所以,需要在圖片服務器上搭建ftp服務(
相關閱讀:
- Linux安裝vsFTPd詳細教程
- proftpd配置參數詳解 proftpd常用配置選項
- proftpd服務器配置詳解
- Linux VSFTP 配置詳解
- vsftpd.conf詳解與vsftpd實例配置
- (圖)RHE5服務器管理-搭建FTP服務器
)。
注意,red hat企業版有selinux,貌似是個安全機制,需要關掉這個才能上傳。
圖片服務器上面搭建了tomcat容器的原因是網站需要的圖片尺寸有將近20種,沒有辦法保存每個縮略圖,因此用java來實現動態縮放圖片的功能,就是類似於 190_h100_w200.jpg 這種格式,長寬隨便換。具體的實現方法,有空再寫吧。
因爲動態生成圖片比較耗費資源,因此用在較少訪問的頁面上,減少了縮略圖的個數。