I’m trying to setup varnish with Drupal10 project, but it’s always MISS on HTTPS request but HIT on HTTP requests.
I’m using lando, here is my varnish service simple config.
name: d10-api
recipe: drupal10
config:
webroot: ./web
config:
php: '.lando/php.ini'
proxy:
varnish:
- varnish-d10.lndo.site
services:
appserver:
varnish:
type: varnish:6.0
ssl: true
backends:
- appserver
configs:
- vcl: /app/.lando/varnish/default.vcl
The vcl config used is the one by default come with varnish docker image. here is the configuration i use GitHub - BERRAMOU/lando-base-varnish-config
Here is varnish log for an HTTPS request which is MISS
* << Request >> 360459
- Begin req 360452 rxreq
- Timestamp Start: 1722803049.990947 0.000000 0.000000
- Timestamp Req: 1722803049.990947 0.000000 0.000000
- ReqStart 172.19.0.2 53104 a0
- ReqMethod GET
- ReqURL /node/1
- ReqProtocol HTTP/1.1
- ReqHeader Host: varnish-d10.lndo.site
- ReqHeader User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
- ReqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
- ReqHeader Accept-Encoding: gzip, deflate, br, zstd
- ReqHeader Accept-Language: en-GB,en-US;q=0.9,en;q=0.8,fr;q=0.7
- ReqHeader Cache-Control: max-age=0
- ReqHeader Cookie: iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- ReqHeader Priority: u=0, i
- ReqHeader Sec-Ch-Ua: "Not)A;Brand";v="99", "Google Chrome";v="127", "Chromium";v="127"
- ReqHeader Sec-Ch-Ua-Mobile: ?0
- ReqHeader Sec-Ch-Ua-Platform: "macOS"
- ReqHeader Sec-Fetch-Dest: document
- ReqHeader Sec-Fetch-Mode: navigate
- ReqHeader Sec-Fetch-Site: none
- ReqHeader Sec-Fetch-User: ?1
- ReqHeader Upgrade-Insecure-Requests: 1
- ReqHeader X-Forwarded-For: 172.19.0.1
- ReqHeader X-Forwarded-Host: varnish-d10.lndo.site
- ReqHeader X-Forwarded-Port: 443
- ReqHeader X-Forwarded-Proto: https
- ReqHeader X-Forwarded-Server: 58671badd9ab
- ReqHeader X-Lando: on
- ReqHeader X-Real-Ip: 172.19.0.1
- ReqUnset X-Forwarded-For: 172.19.0.1
- ReqHeader X-Forwarded-For: 172.19.0.1, 172.19.0.2
- VCL_call RECV
- ReqHeader X-VC-My-Purge-Key: bf79VN1ryQ9zhvomLOqoldCWv5w3xvyRJwIaRc2GKtmg4IpVDaA7IDF2X7W824JR
- ReqUnset X-VC-My-Purge-Key: bf79VN1ryQ9zhvomLOqoldCWv5w3xvyRJwIaRc2GKtmg4IpVDaA7IDF2X7W824JR
- ReqHeader vckey: ;iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- ReqUnset vckey: ;iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- ReqHeader vckey: ;iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D;datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjGp
- ReqUnset vckey: ;iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D;datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjGp
- ReqHeader vckey: ;iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D;datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjGp
- ReqUnset vckey: ;iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D;datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjGp
- ReqHeader vckey:
- ReqUnset vckey:
- ReqHeader vckey:
- ReqUnset Cookie: iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- ReqHeader Cookie: iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- ReqUnset Cookie: iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- ReqHeader Cookie: iadvize-6912-vuid=%7B%22vuid%22%3A%22d4a2d9485db84d9f90dfa67bb2fa22350fd39c91bbd54%22%2C%22deviceId%22%3A%22b50aa778-6908-40e9-914f-f6415ae6e473%22%7D; datadome=WHOXlev3TenxhfPKnQ4F_L7hWMnVqjGZ7aYJvMA9qkwVZZ5eZwxoKCHtnTlLRt3xTME4Ep1nhSt~45GoUhsjG
- VCL_return pass
- VCL_call HASH
- ReqHeader hash: /node/1
- ReqUnset hash: /node/1
- ReqHeader hash: /node/1#varnish-d10.lndo.site
- ReqUnset hash: /node/1#varnish-d10.lndo.site
- ReqHeader hash: /node/1#varnish-d10.lndo.sitehttps
- ReqUnset vckey:
- VCL_return lookup
- VCL_call PASS
- VCL_return fetch
- Link bereq 360460 pass
- Timestamp Fetch: 1722803050.015579 0.024632 0.024632
- RespProtocol HTTP/1.1
- RespStatus 200
- RespReason OK
- RespHeader Date: Sun, 04 Aug 2024 20:24:09 GMT
- RespHeader Server: Apache/2.4.56 (Debian)
- RespHeader X-Powered-By: PHP/8.1.28
- RespHeader Cache-Control: max-age=31536000, public
- RespHeader X-Drupal-Dynamic-Cache: MISS
- RespHeader Content-language: en
- RespHeader X-Content-Type-Options: nosniff
- RespHeader X-Frame-Options: SAMEORIGIN
- RespHeader X-Drupal-Cache-Tags: CACHE_MISS_IF_UNCACHEABLE_HTTP_METHOD:form block_view config:block.block.olivero_account_menu config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_main_m
- RespHeader X-Drupal-Cache-Contexts: cookies:big_pipe_nojs languages:language_interface route session.exists theme timezone url.path.is_front url.path.parent url.query_args:_wrapper_format url.site user.permissions user.roles
- RespHeader X-Drupal-Cache-Max-Age: -1 (Permanent)
- RespHeader Expires: Sun, 19 Nov 1978 05:00:00 GMT
- RespHeader Last-Modified: Sun, 04 Aug 2024 20:23:43 GMT
- RespHeader ETag: "1722803023-gzip"
- RespHeader Vary: Cookie,Accept-Encoding
- RespHeader X-Generator: Drupal 10 (https://www.drupal.org)
- RespHeader Purge-Cache-Tags: config:block_list config:block.block.olivero_account_menu config:block.block.olivero_search_form_wide config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_p
- RespHeader Cache-Tags: config:block_list config:block.block.olivero_account_menu config:block.block.olivero_search_form_wide config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_page_ti
- RespHeader X-Drupal-Cache: HIT
- RespHeader Content-Encoding: gzip
- RespHeader Content-Type: text/html; charset=UTF-8
- RespHeader X-VC-Req-Host: varnish-d10.lndo.site
- RespHeader X-VC-Req-URL: /node/1
- RespHeader X-VC-Req-URL-Base: /node/1
- RespHeader X-VC-Cacheable: NO:Not cacheable, ttl: 0.000
- RespHeader X-Url: /node/1
- RespHeader X-Host: varnish-d10.lndo.site
- RespHeader X-Varnish: 360459
- RespHeader Age: 0
- RespHeader Via: 1.1 varnish (Varnish/6.0)
- VCL_call DELIVER
- RespUnset X-VC-Req-Host: varnish-d10.lndo.site
- RespUnset X-VC-Req-URL: /node/1
- RespUnset X-VC-Req-URL-Base: /node/1
- RespUnset Via: 1.1 varnish (Varnish/6.0)
- RespUnset X-Url: /node/1
- RespUnset X-Host: varnish-d10.lndo.site
- RespUnset Cache-Tags: config:block_list config:block.block.olivero_account_menu config:block.block.olivero_search_form_wide config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_page_ti
- RespHeader X-VC-Cache: MISS
- RespUnset X-VC-Cacheable: NO:Not cacheable, ttl: 0.000
- VCL_return deliver
- Timestamp Process: 1722803050.015603 0.024656 0.000024
- RespHeader Accept-Ranges: bytes
- RespHeader Transfer-Encoding: chunked
- RespHeader Connection: keep-alive
- Timestamp Resp: 1722803050.019641 0.028694 0.004038
- ReqAcct 1210 0 1210 2733 4935 7668
- End
And here is a log with http request which is HIT
<< Request >> 393230
- Begin req 393228 rxreq
- Timestamp Start: 1722681295.423629 0.000000 0.000000
- Timestamp Req: 1722681295.423629 0.000000 0.000000
- ReqStart 172.19.0.2 48756 a0
- ReqMethod GET
- ReqURL /node/1
- ReqProtocol HTTP/1.1
- ReqHeader Host: varnish-d10.lndo.site
- ReqHeader User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
- ReqHeader Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
- ReqHeader Accept-Encoding: gzip, deflate
- ReqHeader Accept-Language: en-GB,en-US;q=0.9,en;q=0.8,fr;q=0.7
- ReqHeader Cache-Control: max-age=0
- ReqHeader If-Modified-Since: Fri, 02 Aug 2024 15:28:36 GMT
- ReqHeader If-None-Match: "1722612516-gzip"
- ReqHeader Upgrade-Insecure-Requests: 1
- ReqHeader X-Forwarded-For: 172.19.0.1
- ReqHeader X-Forwarded-Host: varnish-d10.lndo.site
- ReqHeader X-Forwarded-Port: 80
- ReqHeader X-Forwarded-Proto: http
- ReqHeader X-Forwarded-Server: 58671badd9ab
- ReqHeader X-Lando: on
- ReqHeader X-Real-Ip: 172.19.0.1
- ReqUnset X-Forwarded-For: 172.19.0.1
- ReqHeader X-Forwarded-For: 172.19.0.1, 172.19.0.2
- VCL_call RECV
- ReqHeader X-VC-My-Purge-Key: lb6kUhxJyT1teZgbUm5pbG6MPK174cCUkuS1PLBNJgvN3xq5nMu2tY4AVvqFC0v5
- ReqUnset X-VC-My-Purge-Key: lb6kUhxJyT1teZgbUm5pbG6MPK174cCUkuS1PLBNJgvN3xq5nMu2tY4AVvqFC0v5
- ReqHeader vckey: ;
- ReqUnset vckey: ;
- ReqHeader vckey: ;
- ReqUnset vckey: ;
- ReqHeader vckey: ;
- ReqUnset vckey: ;
- ReqHeader vckey: ;
- ReqUnset vckey: ;
- ReqHeader vckey:
- ReqHeader Cookie:
- ReqUnset Cookie:
- ReqHeader Cookie:
- ReqUnset Cookie:
- VCL_return hash
- ReqUnset Accept-Encoding: gzip, deflate
- ReqHeader Accept-Encoding: gzip
- VCL_call HASH
- ReqHeader hash: /node/1
- ReqUnset hash: /node/1
- ReqHeader hash: /node/1#varnish-d10.lndo.site
- ReqUnset vckey:
- VCL_return lookup
- Hit 425994 31535918.620684 120.000000 0.000000
- VCL_call HIT
- VCL_return deliver
- RespProtocol HTTP/1.1
- RespStatus 200
- RespReason OK
- RespHeader Date: Sat, 03 Aug 2024 10:33:32 GMT
- RespHeader Server: Apache/2.4.56 (Debian)
- RespHeader X-Powered-By: PHP/8.1.28
- RespHeader Cache-Control: max-age=31536000, public
- RespHeader X-Drupal-Dynamic-Cache: MISS
- RespHeader Content-language: en
- RespHeader X-Content-Type-Options: nosniff
- RespHeader X-Frame-Options: SAMEORIGIN
- RespHeader X-Drupal-Cache-Tags: CACHE_MISS_IF_UNCACHEABLE_HTTP_METHOD:form block_view config:block.block.olivero_account_menu config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_main_m
- RespHeader X-Drupal-Cache-Contexts: cookies:big_pipe_nojs languages:language_interface route session.exists theme timezone url.path.is_front url.path.parent url.query_args:_wrapper_format url.site user.permissions user.roles
- RespHeader X-Drupal-Cache-Max-Age: -1 (Permanent)
- RespHeader Expires: Sun, 19 Nov 1978 05:00:00 GMT
- RespHeader Last-Modified: Fri, 02 Aug 2024 15:28:36 GMT
- RespHeader ETag: "1722612516-gzip"
- RespHeader Vary: Cookie,Accept-Encoding
- RespHeader X-Generator: Drupal 10 (https://www.drupal.org)
- RespHeader Purge-Cache-Tags: config:block_list config:block.block.olivero_account_menu config:block.block.olivero_search_form_wide config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_p
- RespHeader Cache-Tags: config:block_list config:block.block.olivero_account_menu config:block.block.olivero_search_form_wide config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_page_ti
- RespHeader X-Drupal-Cache: HIT
- RespHeader Content-Encoding: gzip
- RespHeader Content-Type: text/html; charset=UTF-8
- RespHeader X-VC-Req-Host: varnish-d10.lndo.site
- RespHeader X-VC-Req-URL: /node/1
- RespHeader X-VC-Req-URL-Base: /node/1
- RespHeader X-Url: /node/1
- RespHeader X-Host: varnish-d10.lndo.site
- RespHeader X-Varnish: 393230 425994
- RespHeader Age: 81
- RespHeader Via: 1.1 varnish (Varnish/6.0)
- VCL_call DELIVER
- RespUnset X-VC-Req-Host: varnish-d10.lndo.site
- RespUnset X-VC-Req-URL: /node/1
- RespUnset X-VC-Req-URL-Base: /node/1
- RespUnset Via: 1.1 varnish (Varnish/6.0)
- RespUnset X-Url: /node/1
- RespUnset X-Host: varnish-d10.lndo.site
- RespUnset Cache-Tags: config:block_list config:block.block.olivero_account_menu config:block.block.olivero_search_form_wide config:block.block.olivero_breadcrumbs config:block.block.olivero_content config:block.block.olivero_help config:block.block.olivero_page_ti
- RespHeader X-VC-Cache: HIT
- VCL_return deliver
- Timestamp Process: 1722681295.423819 0.000190 0.000190
- RespProtocol HTTP/1.1
- RespStatus 304
- RespReason Not Modified
- RespHeader Connection: keep-alive
- Timestamp Resp: 1722681295.423894 0.000265 0.000075
- ReqAcct 742 0 742 2700 0 2700
- End
Did anyone have this issue with Drupal and varnish ? I have tried to set X-Forwarded-Proto
in the vcl_deliver like this
if (req.http.X-Forwarded-Proto == "https") {
set resp.http.X-Forwarded-Proto = "https";
}
I doubt it’s a reverse_proxy issue, i have tried reverse_proxy_header to set reverse_proxy_header to X_FORWARDED_PROTO and also i tried to add hitch TLS proxy also but nothing seems to work, any help would be appreciated.