2014-09-22 35 views
1

我有一個客戶端在運行CDN時遇到一些500錯誤。這些錯誤表明內部重定向過多,我們的研究證實了這一點。客戶不想調整他們的內部重定向,並想以另一種方式解決這個問題。10個內部重定向 - 可以提高此限制嗎?

根據我的研究,到目前爲止,這似乎是一個硬工資帽這不是針對任何一個類型的Web服務器,並在地方,以避免死循環。話雖如此,有什麼辦法可以提高這個極限 - 例如20個而不是10個?

實施例:

  1. 瀏覽器>> 9個重定向>>來源200頁(9重定向總)
  2. 瀏覽器>> 9個重定向>>來源可提供自定義404頁(1重定向自定義404 - 共10個重定向)
  3. 瀏覽器>> CDN(自定義規則+1重定向)>> 9重定向>>原點200頁(共10重定向)
  4. 瀏覽器>> CDN(自定義規則+1重定向)>> 9重定向>>源自定義404頁面(+1重定向自定義404 - 11重定向總數)

只有實施例4給出了500錯誤。在不調整重定向配置或刪除CDN的情況下,有什麼辦法可以解決這個問題? (不幸的是,我無法提供更多關於重定向的信息,我的道歉)。

+0

超過10個重定向在鏈路鏈錯誤需要調試一個令人厭煩的努力。即使有5個重定向也是有用的,對於糟糕的設計決策,邊界爲2_x_。如果你能想象出一個無法通過10級間接解決的情況,我會願意改變我的立場。 – msw 2014-09-23 00:20:41

回答

1

不幸的是,它是HTTP客戶端決定它願意遵循多少重定向。你看到的限制,從最初在RFC 2068, sec 10.3給出的價格再次出現在RFC 7231, sec 6.4推薦莖:

本規範的早期版本建議最多五個重定向[...]內容開發者需要注意,某些客戶端可能會實施這種固定的限制。

this answer可以找到粗略估計有多少重定向將達到瀏覽器的限制。大多數瀏覽器允許配置此限制(例如,Firefox正在公開network.http.redirection-limit設置)。

Web服務器則是一個不同的問題:它似乎有阿帕奇爲v2.0.452.1之間的RewriteOptions指令的MaxRedirects選項。 LimitInternalRecursion設置似乎已經接管了這一點。我一直無法找到nginx的等效設置。作爲最後一點:如果你真的看到了很多內部重定向(即重定向只能在重寫引擎中執行,並且不會立即導致真正的HTTP重定向),這可能是一個強有力的指示來修改你的重寫規則。

+2

並且添加內部重定向不提供任何應用程序邏輯,因爲它們從不觸摸應用程序。 – Melvyn 2014-09-23 06:22:03

+0

@Melvyn好點。 – DaSourcerer 2014-09-23 06:47:45

+0

我已經跨Mozilla的文章跌跌撞撞,卻沒有看到它冗長陳述「內部」重定向,所以不知道這是我一直在尋找的文檔。感謝您的輸入我的第一次SO查詢:) – NNLocke 2014-09-23 17:19:56

1

你需要,你必須修復需要的,而不是試圖改變這個星球上的每個瀏覽器無數內部重定向窮人應用程序邏輯在客戶端上留下深刻的印象。

**編輯**

阿帕奇顯然有使用RewriteOptions MaxRedirects選項來改變這種服務器端的選項,但我認爲你還是會遇到問題與瀏覽器經常建議用戶停止重定向和保釋出來..有時甚至在10次重定向之前。

+0

是啊,我想是這樣的話,但到處都找不到這種限制被記錄,甚至特定的瀏覽器。你知道我可以提供的任何文件嗎? – NNLocke 2014-09-22 21:27:51

+0

只是你知道:MaxRedirects選項已經在[2.0.45](http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#RewriteOptions)中引入,但在[2.1]( http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteOptions)。 – DaSourcerer 2014-09-23 05:46:00

相關問題