Firefox에서는 Varnish가 작동하지만 Google 크롬에서는 작동하지 않습니다. 가능한? 왜?바니시는 다른 브라우저에서 다르게 작동합니다. 이유가 무엇입니까?
답변
크롬에 세션 쿠키가있어 다른 요청이 백엔드로 전달되는 경우가 있습니다.
예. 요청한 쿠키를 확인합니다. 그들은 다르다. 첫 번째 방문으로 인해 발생했습니다. 응답으로 Chrome 클라이언트에 새로운 쿠키가 설정되었습니다. – Hao
쿠키는 일반적으로 해시에 쿠키를 추가하지 않는 한 캐싱을 중단합니다. [https://www.varnish-cache.org/trac/wiki/VCLExampleCacheCookies](https://www.varnish-cache.org/trac/wiki/VCLExampleCacheCookies) –
가장 일반적인 원인은 Accept-Encoding 헤더의 정규화입니다. Firefox와 Chrome은 모두 다른 것으로 보냅니다.() 귀하의 하위 vcl_recv이 추가 :
if (req.http.Accept-Encoding) {
if (req.url ~ "\.(jpg|png|gif|gz|tgz|bz2|tbz|mp3|ogg)$") {
# No point in compressing these
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
# unkown algorithm
remove req.http.Accept-Encoding;
}
}
이것은 또한 Varnish manual on the "Vary" header에 설명되어 있습니다.
if (req.http.Accept-Encoding) {
if (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
# unknown language. Remove the accept-language header and
# use the backend default.
unset req.http.Accept-Encoding;
}
}
//add below condition along with above code in vcl_recv subroutine.
if(req.http.User-Agent) {
unset req.http.User-Agent;
}
다른 현명한 vcl_deliver 하위 코드를 작성할 수 있습니다. 응답 헤더에서 Vary를 설정 해제하는 루틴. unset resp.http.Vary; –
- 1. Regex는 다른 컴퓨터에서 다르게 작동합니다.
- 2. 다른 서버에서 cURL이 다르게 작동합니다.
- 3. FluentNHibernate는 다른 컴퓨터에서 다르게 작동합니다.
- 4. 반응 형 CSS는 모바일이 아닌 일반 브라우저에서 작동합니다 ... 이유가 무엇입니까?
- 5. java.util.Logger는 다른 OS에 압축되어있을 때 다르게 작동합니다.
- 6. fscanf()는 다른 컴퓨터에서 다르게 작동합니다.
- 7. 자바 스크립트가 다른 호스트에서 다르게 작동합니다.
- 8. window.onerror 함수가 다른 브라우저에서 다르게 처리되었습니다.
- 9. CSS z-index/javascript는 세 가지 주요 브라우저에서 다르게 작동합니다.
- 10. 자바 스크립트 만 작동합니다. 이유가 무엇입니까?
- 11. 다른 브라우저에서 웹 페이지 디스플레이를 다르게 만드는 방법은 무엇입니까?
- 12. My Javascript는 FireFox에서만 작동합니다. 이유가 무엇입니까?
- 13. MSBuild는 여러 컴퓨터에서 다르게 작동합니다.
- 14. Firefox가 SSL을 차단하고 다른 모든 브라우저에서 작동합니다.
- 15. BeautifulSup이 두 환경에서 다르게 작동합니다.
- 16. CSS 화살표 아이콘 테두리가 다른 브라우저에서 다르게 렌더링됩니다.
- 17. JQuery는 프로덕션 환경에서 다르게 작동합니다.
- 18. Cron 작업은 독립형과 다르게 작동합니다.
- 19. VS2010과 VS2012에서 DeploymentItem이 다르게 작동합니다.
- 20. 다른 브라우저에서 TCP/IP RST가 다르게 전송되는 경우
- 21. Cancel 버튼의 선택자가 다른 버튼의 선택자와 다르게 작동합니다
- 22. Visual Basic .Net 소프트웨어는 컴퓨터와 다르게 작동합니다.
- 23. 내 응용 프로그램은 디버그 모드에서만 IE에서 작동합니다 (다른 브라우저에서 작동)
- 24. 위치 : 다른 브라우저에서 다르게 동작하는 고정 된 (CSS)
- 25. 내 텍스트 영역 상자가 다른 브라우저에서 다르게 배치되는 이유
- 26. webkit 브라우저에서 setInterval이 이상하게 작동합니다.
- 27. NSUserDefaults가 Iphone 및 시뮬레이터에서 다르게 작동합니다.
- 28. 두 개의 거의 동일한 양식이 다르게 작동합니다.
- 29. jQuery $ ('. classname'). 길이가 실패하지만 $ .find ('. classname'). 길이가 작동합니다. 이유가 무엇입니까?
- 30. Chrome, Firefox에서 Flex 앱이 다르게 작동합니다.
어, 왜 그렇게 생각하는지 말해주십시오. 너는 무엇을 관찰 했는가? – ivy