Varnish не кеширует .js / .css / .HTML для некоторых сайтов wordpress

Я использую Nginx в качестве терминатора SSL перед лаком. Бэкенды имеют низкую скорость. У меня есть два сайта wordpress, на которых оба используют протокол HTTPS. Перед моей инфраструктурой стоит Haproxy, который передает только SSL-трафик на Nginx.

Один из моих веб-сайтов загружается быстро, и когда я проверяю статус кешированных элементов с помощью firebug, все получают «HIT», например .js .css, и имя домена: domain1.com.

Когда я проверяю эти элементы для второго сайта wordpress .js и HTML-файл получают "MISS" то же самое, что и доменное имя domain2.com.

Конфигурация Nginx и Varnish, а также серверная часть одинаковы для обоих веб-сайтов. Я также отключил все его плагины и те, которые, по моему мнению, влияют на кеширование: WP Fastest Cache, 404–301, Broken Link Checker и некоторые другие.

Единственная разница в том, что на втором веб-сайте есть робот, который собирает новости из другие сайты и разместить их на сайтах (своего рода поисковый робот).

Что заставляет лак не кэшировать все на втором сайте?


Редактировать:
Я добавил журнал varnish для запросов, которые не кэшируются:

varnishlog -g request -q "ReqUrl ~ '/wp-content/themes/farda/js/jquery.min.js'"
*   << Request  >> 149       
-   Begin          req 148 rxreq
-   Timestamp      Start: 1499626236.025652 0.000000 0.000000
-   Timestamp      Req: 1499626236.025652 0.000000 0.000000
-   ReqStart       192.168.1.108 57470
-   ReqMethod      GET
-   ReqURL         /wp-content/themes/farda/js/jquery.min.js
-   ReqProtocol    HTTP/1.0
-   ReqHeader      X-Real-IP: 192.168.1.105
-   ReqHeader      X-Forwarded-For: 192.168.1.105
-   ReqHeader      X-Forwarded-Proto: https
-   ReqHeader      X-Nginx: on
-   ReqHeader      Host: mytourguide.ir
-   ReqHeader      Connection: close
-   ReqHeader      User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0
-   ReqHeader      Accept: */*
-   ReqHeader      Accept-Language: en-US,en;q=0.5
-   ReqHeader      Accept-Encoding: gzip, deflate, br
-   ReqHeader      Referer: https://mytourguide.ir/
-   ReqHeader      Pragma: no-cache
-   ReqHeader      Cache-Control: no-cache
-   ReqUnset       X-Forwarded-For: 192.168.1.105
-   ReqHeader      X-Forwarded-For: 192.168.1.105, 192.168.1.108
-   VCL_call       RECV
-   ReqHeader      Cookie: 
-   ReqUnset       Cookie: 
-   ReqHeader      Cookie: 
-   ReqUnset       Cookie: 
-   ReqHeader      Cookie: 
-   ReqUnset       Cookie: 
-   ReqHeader      Cookie: 
-   ReqUnset       Cookie: 
-   ReqUnset       Accept-Encoding: gzip, deflate, br
-   ReqHeader      Accept-Encoding: gzip
-   ReqUnset       X-Forwarded-For: 192.168.1.105, 192.168.1.108
-   ReqHeader      X-Forwarded-For: 192.168.1.108
-   ReqUnset       Accept-Language: en-US,en;q=0.5
-   ReqUnset       User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:51.0) Gecko/20100101 Firefox/51.0
-   ReqHeader      cookie: 
-   ReqUnset       cookie: 
-   ReqHeader      cookie: 
-   VCL_return     hash
-   VCL_call       HASH
-   VCL_return     lookup
-   Debug          "XXXX MISS"
-   VCL_call       MISS
-   VCL_return     fetch
-   Link           bereq 150 fetch
-   Timestamp      Fetch: 1499626236.029726 0.004075 0.004075
-   RespProtocol   HTTP/1.1
-   RespStatus     200
-   RespReason     OK
-   RespHeader     Cache-Control: max-age=2592000, private
-   RespHeader     Expires: Mon, 09 Jul 2018 18:50:18 GMT
-   RespHeader     Last-Modified: Tue, 17 Jan 2017 14:46:21 GMT
-   RespHeader     Content-Type: text/javascript; charset=UTF-8
-   RespHeader     Content-Length: 33342
-   RespHeader     Content-Encoding: gzip
-   RespHeader     Vary: Accept-Encoding,User-Agent
-   RespHeader     Date: Sun, 09 Jul 2017 18:50:18 GMT
-   RespHeader     Accept-Ranges: bytes
-   RespHeader     Server: LiteSpeed
-   RespHeader     X-Varnish: 149
-   RespHeader     Age: 0
-   RespHeader     Via: 1.1 varnish-v4
-   VCL_call       DELIVER
-   RespHeader     X-Cache: MISS
-   RespUnset      X-Varnish: 149
-   RespUnset      Via: 1.1 varnish-v4
-   RespHeader     X-Configured-By: ServerSetup.ir
-   VCL_return     deliver
-   Timestamp      Process: 1499626236.029739 0.004087 0.000012
-   Debug          "RES_MODE 2"
-   RespHeader     Connection: close
-   RespHeader     Accept-Ranges: bytes
-   Timestamp      Resp: 1499626236.030691 0.005039 0.000952
-   Debug          "XXX REF 2"
-   ReqAcct        445 0 445 448 33342 33790
-   End            
**  << BeReq    >> 150       
--  Begin          bereq 149 fetch
--  Timestamp      Start: 1499626236.025722 0.000000 0.000000
--  BereqMethod    GET
--  BereqURL       /wp-content/themes/farda/js/jquery.min.js
--  BereqProtocol  HTTP/1.0
--  BereqHeader    X-Real-IP: 192.168.1.105
--  BereqHeader    X-Forwarded-Proto: https
--  BereqHeader    X-Nginx: on
--  BereqHeader    Host: mytourguide.ir
--  BereqHeader    Accept: */*
--  BereqHeader    Referer: https://mytourguide.ir/
--  BereqHeader    Pragma: no-cache
--  BereqHeader    Accept-Encoding: gzip
--  BereqHeader    X-Forwarded-For: 192.168.1.108
--  BereqHeader    cookie: 
--  BereqProtocol  HTTP/1.1
--  BereqHeader    X-Varnish: 150
--  VCL_call       BACKEND_FETCH
--  VCL_return     fetch
--  Backend        17 apache web1(192.168.1.11,,5050)
--  Timestamp      Bereq: 1499626236.025798 0.000076 0.000076
--  Timestamp      Beresp: 1499626236.027971 0.002249 0.002173
--  BerespProtocol HTTP/1.1
--  BerespStatus   200
--  BerespReason   OK
--  BerespHeader   Cache-Control: max-age=2592000, private
--  BerespHeader   Expires: Mon, 09 Jul 2018 18:50:18 GMT
--  BerespHeader   Last-Modified: Tue, 17 Jan 2017 14:46:21 GMT
--  BerespHeader   Content-Type: text/javascript; charset=UTF-8
--  BerespHeader   Content-Length: 33342
--  BerespHeader   Content-Encoding: gzip
--  BerespHeader   Vary: Accept-Encoding,User-Agent
--  BerespHeader   Date: Sun, 09 Jul 2017 18:50:18 GMT
--  BerespHeader   Accept-Ranges: bytes
--  BerespHeader   Server: LiteSpeed
--  BerespHeader   Connection: Keep-Alive
--  TTL            RFC 2592000 -1 -1 1499626236 1499626236 1499626218 1531162218 2592000
--  VCL_call       BACKEND_RESPONSE
--  TTL            VCL 120 10 0 1499626236
--  VCL_return     deliver
--  Storage        malloc Transient
--  ObjProtocol    HTTP/1.1
--  ObjStatus      200
--  ObjReason      OK
--  ObjHeader      Cache-Control: max-age=2592000, private
--  ObjHeader      Expires: Mon, 09 Jul 2018 18:50:18 GMT
--  ObjHeader      Last-Modified: Tue, 17 Jan 2017 14:46:21 GMT
--  ObjHeader      Content-Type: text/javascript; charset=UTF-8
--  ObjHeader      Content-Length: 33342
--  ObjHeader      Content-Encoding: gzip
--  ObjHeader      Vary: Accept-Encoding,User-Agent
--  ObjHeader      Date: Sun, 09 Jul 2017 18:50:18 GMT
--  ObjHeader      Accept-Ranges: bytes
--  ObjHeader      Server: LiteSpeed
--  Fetch_Body     3 length stream
--  Gzip           u F - 33342 95992 80 206366 266672
--  BackendReuse   17 web1(192.168.1.11,,5050)
--  Timestamp      BerespBody: 1499626236.030637 0.004915 0.002666
--  Length         33342
--  BereqAcct      291 0 291 375 33342 33717
--  End            
0
задан 9 July 2017 в 21:55
1 ответ

Проблема связана с серверной частью (LiteSpeed).

Обратите внимание на эту строку в журнале varnishlog:

--  ObjHeader      Cache-Control: max-age=2592000, private

Встроенный VCL Varnish не кэширует URL-адреса, которые отправляют Cache -Контроль: частный . Таким образом, он всегда не кэшируется, а позже MISS редактируется.

Правильное решение: настройте LiteSpeed ​​ для включения общего кеша, а не частного.

1
ответ дан 4 December 2019 в 16:12

Теги

Похожие вопросы