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