Лаки, заголовки SSL и HTTP - нет X-Cache после перезагрузки с SSL? - PullRequest
1 голос
/ 16 марта 2019

Я заметил странное поведение моей установки Varnish / Apache, которое заставляет меня задаться вопросом, правильно ли кэшируются страницы в любое время или нет.

Я использую Apache на порте 8080 и Varnish на порте 80 на той же машине.Также я использую Apache для завершения SSL с Varnish, как описано в этой статье

Я тестирую, чтобы открыть веб-страницу четырьмя различными способами, и я ожидаю, что заголовки HTTP X-Cache будутпоявляются во всех четырех случаях, чтобы доказать, что лак работает правильно:

  1. Вызовите новую страницу, используя http (порт 80), или принудительно обновите копию, используя принудительную перезагрузку, чтобы получить Status 200 OK
  2. Вызовите ту же страницу еще раз в порту 80 (http) с простой перезагрузкой, чтобы получить HTTP-статус 304 Не изменено
  3. Вызовите страницу, используя https (порт 443), и принудительно перезагрузите Status 200 с принудительной перезагрузкой
  4. Перезагрузите страницу, используя https, и получите статус 304.

Я использую Chrome DevTools для проверки заголовков.Вот результаты:

Вариант 1: принудительно обновить страницу, http

HTTP/1.1 200 OK
Date: Fri, 15 Mar 2019 22:00:10 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.5.38
X-Content-Type-Options: nosniff
X-Powered-By: PHP/5.5.38
X-Drupal-Cache: MISS
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: public, max-age=21600
X-Content-Type-Options: nosniff
Content-Language: de
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=edge,chrome=1
Last-Modified: Fri, 15 Mar 2019 22:00:10 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
X-Varnish: 323946989 325583205
Age: 2444
Via: 1.1 varnish-v4
X-Cache: HIT
X-Cache-Hits: 235
Content-Length: 39753
Connection: keep-alive
Accept-Ranges: bytes

Вариант 2: страница перезагрузки, http

HTTP/1.1 304 Not Modified
Date: Fri, 15 Mar 2019 22:00:10 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.5.38
X-Content-Type-Options: nosniff
X-Powered-By: PHP/5.5.38
X-Drupal-Cache: MISS
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: public, max-age=21600
X-Content-Type-Options: nosniff
Content-Language: de
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=edge,chrome=1
Etag: "1552687210-1"
Last-Modified: Fri, 15 Mar 2019 22:00:10 GMT
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
X-Varnish: 195923610 325583205
Age: 2616
Via: 1.1 varnish-v4
X-Cache: HIT
X-Cache-Hits: 250
Connection: keep-alive

Опция 1: принудительно обновить страницу, https

HTTP/1.1 200 OK
Date: Fri, 15 Mar 2019 22:00:10 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.5.38
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: public, max-age=21600
Vary: Accept-Encoding
X-Content-Type-Options: nosniff
X-Powered-By: PHP/5.5.38
X-Drupal-Cache: MISS
X-Content-Type-Options: nosniff
Content-Language: de
X-Frame-Options: SAMEORIGIN
X-UA-Compatible: IE=edge,chrome=1
Etag: "1552687210-1"
Last-Modified: Fri, 15 Mar 2019 22:00:10 GMT
Content-Encoding: gzip
Content-Type: text/html; charset=utf-8
X-Varnish: 482447464 325583205
Age: 1410
Via: 1.1 varnish-v4
X-Cache: HIT
X-Cache-Hits: 146
Content-Length: 39753
Accept-Ranges: bytes

Опция 4: перезагрузка страницы, https

HTTP/1.1 304 Not Modified
Date: Fri, 15 Mar 2019 22:00:10 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.5.38
Connection: Keep-Alive
Keep-Alive: timeout=5, max=100
Etag: "1552687210-1"
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Cache-Control: public, max-age=21600
Vary: Accept-Encoding

Почему заголовок в последнем запросе совершенно другой?И как я могу проверить, действительно ли страница доставлена ​​Varnish?

1 Ответ

1 голос
/ 01 апреля 2019

Заголовок отличается, потому что это HTTP-ответ 304, это означает, что файл больше не передается и не доставляется непосредственно из кэша браузера, поэтому в нем нет заголовков Varnish. Однако я не знаю, почему первая перезагрузка без SSL имеет заголовки Varnish.

Другое дело, вы должны использовать Hitch в качестве ssl-прокси, для этого это намного лучше, чем Apache, и он использует протоколы PROXY , которые имеют несколько преимуществ.

...