Apache HTTP Server 版本2.2
說(shuō)明 | mod_proxy 的FTP支持模塊 |
---|---|
狀態(tài) | 擴(kuò)展(E) |
模塊名 | proxy_ftp_module |
源文件 | proxy_ftp.c |
本模塊提供了代理FTP站點(diǎn)的能力,它需要mod_proxy
提供的服務(wù)。這樣,為了能處理FTP代理請(qǐng)求,模塊mod_proxy
和mod_proxy_ftp
必須同時(shí)存在于服務(wù)器中。
注意:目前對(duì)FTP的支持僅限于GET方法。
在您沒(méi)有對(duì)您的服務(wù)器采取安全措施之前,不要啟用代理。開(kāi)放的代理服務(wù)器對(duì)你自己的內(nèi)部網(wǎng)絡(luò)和大規(guī)模的Internet網(wǎng)都是有安全隱患的。
您可能沒(méi)有在您的代理mime類(lèi)型配置文件中定義特定的文件類(lèi)型application/octet-stream
。有用的一行可能是這樣的:
application/octet-stream bin dms lha lzh exe class tgz taz
作為另一種選擇,你可能希望將所有東西都看成二進(jìn)制類(lèi)型:
DefaultType application/octet-stream
在很罕見(jiàn)的情況下,也許您想要用FTP的ASCII
傳輸模式(默認(rèn)是binary
模式)來(lái)下載某個(gè)特定的文件,您可以用在請(qǐng)求前面加上";type=a
"前綴的方式覆蓋mod_proxy
的默認(rèn)值來(lái)強(qiáng)制進(jìn)行ASCII模式的傳輸。但是不論如何,F(xiàn)TP目錄列表將始終以ASCII模式執(zhí)行。
目前,mod_proxy僅支持FTP的GET方法,因此不支持使用FTP上傳。你可以通過(guò)Apache代理改用HTTP上傳(POST或PUT)。
一個(gè)FTP URI一般被當(dāng)成登錄用戶home目錄的相對(duì)路徑處理。唉,可惜您不能使用"/../"來(lái)到達(dá)更上層的目錄,因?yàn)辄c(diǎn)(.)由瀏覽器解釋而不會(huì)真正發(fā)送給FTP服務(wù)器。為搞定這個(gè)問(wèn)題,在Apache FTP代理中實(shí)現(xiàn)了一個(gè)"Squid %2f hack"。這是一個(gè)也被其它流行的類(lèi)似Squid Proxy Cache的代理服務(wù)器使用的解決方法。使用預(yù)先將"/%2f
"加入您請(qǐng)求路徑的方法,您能使代理將FTP起始目錄改為"/
"(而不是home目錄)。例如,為了取得文件/etc/motd
,您應(yīng)當(dāng)使用下面這樣的URL :
ftp://user@host/%2f/etc/motd
使用用戶名和密碼登入一個(gè)FTP服務(wù)器時(shí),Apache使用了不同的策略。當(dāng)URL中不存在用戶名和密碼時(shí),Apache會(huì)向FTP服務(wù)器發(fā)出一個(gè)匿名用戶的登錄,比如說(shuō):
user: anonymous
password: apache_proxy@
這對(duì)于配置了匿名訪問(wèn)的大多數(shù)FTP服務(wù)器來(lái)說(shuō)是很有效的。
要使用特定的用戶名,可以將這個(gè)特定的用戶名嵌入U(xiǎn)RL中:
ftp://username@host/myfile
如果在給出了這個(gè)用戶名后,F(xiàn)TP服務(wù)器要求提供一個(gè)密碼(這是它應(yīng)該做的),這時(shí)Apache會(huì)回應(yīng)一個(gè)"401
"(需要認(rèn)證)應(yīng)答,這將會(huì)使瀏覽器彈出一個(gè)用戶名/密碼對(duì)話框。當(dāng)輸入了密碼后,將會(huì)再次嘗試連接,如果成功,則請(qǐng)求的資源就會(huì)被下載。這種方法的好處在于您的瀏覽器不會(huì)以明碼的形式顯示密碼,而當(dāng)您使用
ftp://username:password@host/myfile
的時(shí)候就無(wú)法做到這一點(diǎn)。
這種方法提交的密碼在傳輸?shù)臅r(shí)候沒(méi)有進(jìn)行加密。它在您的瀏覽器到Apache代理服務(wù)器之間傳輸時(shí)為base64格式的明文字符串,而在Apache代理服務(wù)器和FTP服務(wù)器之間傳輸?shù)臑槠胀ㄎ谋。所以,在通過(guò)HTTP訪問(wèn)您的FTP服務(wù)器之前(或通過(guò)FTP訪問(wèn)您的私人文件之前)您應(yīng)該慎重考慮一下。當(dāng)使用這種不安全的手段時(shí),一個(gè)竊聽(tīng)者可能會(huì)用這種方法截取您的密碼。