Httpd

如何為反向代理設置不同的 mod_mime 規則?

  • October 17, 2013

預設情況下,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該路徑。

我可以想到三種方法來實現這一點。

  1. 在目錄、虛擬主機或 .htaccess 上下文中,您可以使用

RemoveType .com

刪除映射。我不確定它是否會在代理上下文中工作,因為這不是一個實際的目錄。但如果沒有,您可以採取相反的方式,從一般列表中刪除 .com,然後專門將其添加到需要的目錄中。 2. 但是,在您的情況下,查看mod_mime_magic可能更有用。它的基本作用是,它實際上沒有擴展到類型的映射,而是查看文件的內容以了解它的真實內容。

缺點是它確實增加了處理,所以你的性能會受到一點影響。如果您已經接近極限,您將需要先進行一些性能測試/負載測試。 3. 如果該目錄或位置中的所有數據始終具有相同的類型,則可ForceType以為整個目錄/位置設置 a:

.

<Location /proxy>
  ForceType image/gif
</Location>

引用自:https://serverfault.com/questions/544723