2017-05-04 31 views
1

我需要根據響應頭(而不是請求頭)來設置cookie。響應頭由SOAP調用設置到後端 - 並且不在apaches控件中。Apache-2.2響應頭邏輯上的Set-Cookie

我查看了SetEnvIf,但它聲明它只調查請求標頭。 mod_rewrite的{HTTP:parm}結構似乎也只適用於請求標頭。

  1. 請求在
  2. 響應頭即將由後端
  3. Apache的調查作出迴應頭FooBar的
  4. 阿帕奇添加設置Cookie,如果響應頭FooBar的值 「串」

匹配時,產生那裏有任何想法?

回答

0

looks like this can be donemod_headers,但不幸的是只有Apache 2.4,因爲表達式只添加到2.4。你會這樣做:

Header set Set-Cookie "cookie-contents-here" "expr=%{resp:Content-Type} =~ m|application/pdf|" 

如果你不能升級到2.4,你可能會考慮把Varnish Cache放在你的Apache安裝前面。它是一個強大的HTTP處理器,可以輕鬆處理爲您修改響應。您也可以實現緩存並提高網站的性能,但如果您不想這樣做,它只能用作傳遞HTTP處理器。也許有一個更簡單的解決方案,但這將工作。

另一種選擇是在Apache和後端之間放置一個圖層,例如PHP腳本,它處理將該調用傳遞到後端並在返回時修改頭部。儘管表現可能不太好;升級Apache或實施Varnish Cache會更好。

如果您使用Apache控制的單獨後端,那麼您可以將Apache完全從循環中取出,並從Varnish Cache直接轉到後端。

希望這些想法有所幫助。

+0

現在我們被apache-2.2卡住了。它捆綁在仍然爲2.2的IBM HTTP Server 8中。我正在考慮IHS 9其中_has_ apache-2.4,但在生產服務器上需要一些時間。感謝您的答覆 :-) – sastorsl