簡體   English   中英

將 HAProxy 配置為 Google-CDN 后端

[英]Configuring HAProxy as Google-CDN backend

我正在嘗試配置一個 HAProxy 后端以與 Google-CDN 一起使用我看到我總是到達 HAProxy 后端並且緩存總是 MISS

這是關於標頭的 google-cdn 請求: https ://cloud.google.com/cdn/docs/caching#cacheability

這是我的 HAProxy 后端配置(我嘗試了多組標頭配置,但從未得到 HIT):

    http-response set-header Cache-Control public;max-age=31536000
    http-response set-header Content-Length 260113322
#    http-request add-header Cache-Control public;max-age=31533000
#    http-request add-header Content-Length 26012101001

當我在瀏覽器中請求對象時,這些是 req\\res 標頭:

響應標頭

alt-svc: clear
cache-control: public;max-age=31536000
content-length: 260113322
content-type: application/javascript; charset=utf-8
date: Thu, 05 Sep 2019 07:56:59 GMT
etag: W/"47e80-NwQR7oXLIZF+J1AAVu9L0mv54I4"
status: 200
vary: Accept-Encoding
via: 1.1 google

請求標頭

:authority: sapix-stg.example.net
:method: GET
:path: /bb/client/SX1234/main.js
:scheme: https
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cache-control: no-cache
pragma: no-cache
sec-fetch-mode: navigate
sec-fetch-site: none
sec-fetch-user: ?1
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36

謝謝

您的Cache-Control響應頭不正確。 這些值用逗號(以及約定中包括的可選空格)分隔-而不是分號。

http-response set-header Cache-Control "public, max-age=31536000"

引號由HAProxy解析器吸收。 也有效:

(沒有空間)

http-response set-header Cache-Control public,max-age=31536000

(逃脫的空間)

http-response set-header Cache-Control public,\ max-age=31536000

通常,無需在代理中添加Content-Length 如果您的原始服務器沒有在響應中自動設置Content-LengthTransfer-Encoding ,那么您的服務器應該是固定的,升級的或更換的。

這可能是因為您的響應包含“Vary”標頭。 HAPoxy 他們不緩存那種類型的響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM