Httpd
如何為反向代理設置不同的 mod_mime 規則?
預設情況下,httpd 包含以下配置:
<IfModule mime_module> # # TypesConfig points to the file containing the list of mappings from # filename extension to MIME-type. # TypesConfig conf/mime.types ... </IfModule>
此文件包含從文件副檔名到 MIME 類型的映射。通常這是我想要的,但我想禁用反向代理的映射。如何指示 mime_module 處理
/*
但排除/proxy/*
?為什麼?
mime_module 包含以下行:
application/x-msdownload exe dll com bat msi
被代理的應用程序在沒有設置或響應正文的情況下接受
PUT /proxy/rest/email@gmail.com
並返回。根據https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-p2-semantics-24#section-3.1.1.5這是完全合法的(因為沒有響應主體)。200 OK``Content-Type
mime_module
認為 URL 適用於.com
文件並錯誤地應用Content-Type: application/x-msdownload
。因為我知道/proxy/rest/
永遠不會返回文件,所以我想禁用mime_module
該路徑。
我可以想到三種方法來實現這一點。
- 在目錄、虛擬主機或 .htaccess 上下文中,您可以使用
RemoveType .com
刪除映射。我不確定它是否會在代理上下文中工作,因為這不是一個實際的目錄。但如果沒有,您可以採取相反的方式,從一般列表中刪除 .com,然後專門將其添加到需要的目錄中。 2. 但是,在您的情況下,查看mod_mime_magic可能更有用。它的基本作用是,它實際上沒有擴展到類型的映射,而是查看文件的內容以了解它的真實內容。
缺點是它確實增加了處理,所以你的性能會受到一點影響。如果您已經接近極限,您將需要先進行一些性能測試/負載測試。 3. 如果該目錄或位置中的所有數據始終具有相同的類型,則可
ForceType
以為整個目錄/位置設置 a:.
<Location /proxy> ForceType image/gif </Location>