熊棠 唐勇
摘要:在Windows Server 2003平臺下,安裝并配置帶mod_xsendfile模塊的Apache2作為前端web服務(wù)器,在Ruby on Rails框架下開發(fā)后臺App服務(wù)器處理請求并生成X-SENDFILE header以實現(xiàn)文件的下載權(quán)限控制。
關(guān)鍵詞:windows;Apache2;xsendfile;Ruby on Rails;下載權(quán)限控制
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)32-7619-02
控制文件的下載權(quán)限是許多WEB應(yīng)用系統(tǒng)都需要面對的問題。目前最有效的控制機制是通過服務(wù)器端程序判斷下載請求是否合法,接受合法請求打開相應(yīng)文件,讀取文件內(nèi)容并發(fā)送給客戶端。傳統(tǒng)文件讀取發(fā)送機制會占用服務(wù)器IO進程,如果文件體積較大或高并發(fā)會大量消耗服務(wù)器內(nèi)存造成系統(tǒng)擁塞甚至宕機。xsendfile機制很好的解決了這一問題。
1 xsendfile介紹
1.1 運行機制
xsendfile 是一種將文件下載請求由后端應(yīng)用轉(zhuǎn)交給前端web服務(wù)器處理的機制,它可以消除后端程序既要讀文件又要處理發(fā)送的壓力,從而顯著提高服務(wù)器效率,特別是處理大文件下載的情形下。[1]
前端web服務(wù)器收到文件訪問請求后,并不立即處理,而是將請求轉(zhuǎn)給后端應(yīng)用服務(wù)器。應(yīng)用服務(wù)器判斷請求合法后,在 X-Sendfile 頭中指定一個文件的地址來通告前端web服務(wù)器。當(dāng)web服務(wù)器檢測到后端發(fā)送的這個header后,它將忽略后端的其他輸出,而使用自身的組件(包括緩存頭和斷點重連等優(yōu)化)機制將文件發(fā)送給用戶。[1]
1.2 web服務(wù)器選擇
5 結(jié)論
xsendfile機制能夠?qū)崿F(xiàn)下載權(quán)限控制,并且有效的降低了內(nèi)存資源消耗。在windows平臺下,xsendfile機制是能夠有效運行的。
參考文獻:
[1] 紅黑聯(lián)盟.使用Nginx的X-Sendfile機制提升PHP文件下載性能[EB/OL].(2012-06) [2014-09-30]. http://www.2cto.com/kf/201206/136929.html.
[2] tn123. mod_xsendfile for Apache2 [EB/OL].(2012-06) [2014-09-30]. https://tn123.org/mod_xsendfile/.
[3] iana. Media Types [EB/OL].(2014-09) [2014-09-30]. http://www.iana.org/assignments/media-types/media-types.xhtml.
摘要:在Windows Server 2003平臺下,安裝并配置帶mod_xsendfile模塊的Apache2作為前端web服務(wù)器,在Ruby on Rails框架下開發(fā)后臺App服務(wù)器處理請求并生成X-SENDFILE header以實現(xiàn)文件的下載權(quán)限控制。
關(guān)鍵詞:windows;Apache2;xsendfile;Ruby on Rails;下載權(quán)限控制
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)32-7619-02
控制文件的下載權(quán)限是許多WEB應(yīng)用系統(tǒng)都需要面對的問題。目前最有效的控制機制是通過服務(wù)器端程序判斷下載請求是否合法,接受合法請求打開相應(yīng)文件,讀取文件內(nèi)容并發(fā)送給客戶端。傳統(tǒng)文件讀取發(fā)送機制會占用服務(wù)器IO進程,如果文件體積較大或高并發(fā)會大量消耗服務(wù)器內(nèi)存造成系統(tǒng)擁塞甚至宕機。xsendfile機制很好的解決了這一問題。
1 xsendfile介紹
1.1 運行機制
xsendfile 是一種將文件下載請求由后端應(yīng)用轉(zhuǎn)交給前端web服務(wù)器處理的機制,它可以消除后端程序既要讀文件又要處理發(fā)送的壓力,從而顯著提高服務(wù)器效率,特別是處理大文件下載的情形下。[1]
前端web服務(wù)器收到文件訪問請求后,并不立即處理,而是將請求轉(zhuǎn)給后端應(yīng)用服務(wù)器。應(yīng)用服務(wù)器判斷請求合法后,在 X-Sendfile 頭中指定一個文件的地址來通告前端web服務(wù)器。當(dāng)web服務(wù)器檢測到后端發(fā)送的這個header后,它將忽略后端的其他輸出,而使用自身的組件(包括緩存頭和斷點重連等優(yōu)化)機制將文件發(fā)送給用戶。[1]
1.2 web服務(wù)器選擇
5 結(jié)論
xsendfile機制能夠?qū)崿F(xiàn)下載權(quán)限控制,并且有效的降低了內(nèi)存資源消耗。在windows平臺下,xsendfile機制是能夠有效運行的。
參考文獻:
[1] 紅黑聯(lián)盟.使用Nginx的X-Sendfile機制提升PHP文件下載性能[EB/OL].(2012-06) [2014-09-30]. http://www.2cto.com/kf/201206/136929.html.
[2] tn123. mod_xsendfile for Apache2 [EB/OL].(2012-06) [2014-09-30]. https://tn123.org/mod_xsendfile/.
[3] iana. Media Types [EB/OL].(2014-09) [2014-09-30]. http://www.iana.org/assignments/media-types/media-types.xhtml.
摘要:在Windows Server 2003平臺下,安裝并配置帶mod_xsendfile模塊的Apache2作為前端web服務(wù)器,在Ruby on Rails框架下開發(fā)后臺App服務(wù)器處理請求并生成X-SENDFILE header以實現(xiàn)文件的下載權(quán)限控制。
關(guān)鍵詞:windows;Apache2;xsendfile;Ruby on Rails;下載權(quán)限控制
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2014)32-7619-02
控制文件的下載權(quán)限是許多WEB應(yīng)用系統(tǒng)都需要面對的問題。目前最有效的控制機制是通過服務(wù)器端程序判斷下載請求是否合法,接受合法請求打開相應(yīng)文件,讀取文件內(nèi)容并發(fā)送給客戶端。傳統(tǒng)文件讀取發(fā)送機制會占用服務(wù)器IO進程,如果文件體積較大或高并發(fā)會大量消耗服務(wù)器內(nèi)存造成系統(tǒng)擁塞甚至宕機。xsendfile機制很好的解決了這一問題。
1 xsendfile介紹
1.1 運行機制
xsendfile 是一種將文件下載請求由后端應(yīng)用轉(zhuǎn)交給前端web服務(wù)器處理的機制,它可以消除后端程序既要讀文件又要處理發(fā)送的壓力,從而顯著提高服務(wù)器效率,特別是處理大文件下載的情形下。[1]
前端web服務(wù)器收到文件訪問請求后,并不立即處理,而是將請求轉(zhuǎn)給后端應(yīng)用服務(wù)器。應(yīng)用服務(wù)器判斷請求合法后,在 X-Sendfile 頭中指定一個文件的地址來通告前端web服務(wù)器。當(dāng)web服務(wù)器檢測到后端發(fā)送的這個header后,它將忽略后端的其他輸出,而使用自身的組件(包括緩存頭和斷點重連等優(yōu)化)機制將文件發(fā)送給用戶。[1]
1.2 web服務(wù)器選擇
5 結(jié)論
xsendfile機制能夠?qū)崿F(xiàn)下載權(quán)限控制,并且有效的降低了內(nèi)存資源消耗。在windows平臺下,xsendfile機制是能夠有效運行的。
參考文獻:
[1] 紅黑聯(lián)盟.使用Nginx的X-Sendfile機制提升PHP文件下載性能[EB/OL].(2012-06) [2014-09-30]. http://www.2cto.com/kf/201206/136929.html.
[2] tn123. mod_xsendfile for Apache2 [EB/OL].(2012-06) [2014-09-30]. https://tn123.org/mod_xsendfile/.
[3] iana. Media Types [EB/OL].(2014-09) [2014-09-30]. http://www.iana.org/assignments/media-types/media-types.xhtml.