ฉันมีไซต์ที่ให้บริการโดย apache+tomcat และแคชที่ให้บริการโดย Varnish 4.1
เมื่อ apache หยุดทำงาน วานิชจะส่งคืนข้อผิดพลาด 503 เสมอ
ฉันต้องการให้วานิชคืนสำเนาของหน้าเว็บที่มีในแคช แต่ความพยายามของฉันกับ ttl และ Grace ไม่ประสบผลสำเร็จ
ฉันคิดว่าฉันได้อ่านเอกสารทั้งหมดเกี่ยวกับการเคลือบเงา 4.1 ที่ฉันสามารถหาได้แล้ว ความช่วยเหลือใด ๆ ก็ได้รับการชื่นชมจริง ๆ
ขอบคุณล่วงหน้า
แก้ไข: varnishlog -g คำขอ -q "ReqUrl eq '/'"
ขด
* << คำขอ >> 1410492
- เริ่มต้น req 1410491 rxreq
- เวลาเริ่มต้น: 1646995409.603391 0.000000 0.000000
- การประทับเวลาที่ต้องการ: 1646995409.603391 0.000000 0.000000
- ReqStart 10.xxx.xxx.xxx 57472
- ReqMethod รับ
- ความต้องการ /
- ReqProtocol HTTP/1.1
- โฮสต์ ReqHeader: akamai5.rsi.ch
- ตัวแทนผู้ใช้ ReqHeader: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
- ReqHeader ยอมรับ: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
- ReqHeader ยอมรับภาษา: it,en-US;q=0.7,en;q=0.3
- ReqHeader ยอมรับการเข้ารหัส: gzip, deflate, br
- คุกกี้ ReqHeader: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; __utma=46365988.836346559.1644414441.16
- คำขออัปเกรด ReqHeader-ไม่ปลอดภัย: 1
- ReqHeader sec-fetch-dest: เอกสาร
- ReqHeader โหมดดึงข้อมูลวินาที: นำทาง
- ReqHeader sec-fetch-site: ไม่มี
- ReqHeader sec-fetch-user: ?1
- การควบคุมแคช ReqHeader: max-age=0
- ReqHeader x-forwarded-proto: https
- ReqHeader x-forwarded-ssl: เปิด
- ReqHeader x-forwarded-port: 443
- ReqHeader x-forwarded-for: 1178.xxx.xxx.xxx
- การเชื่อมต่อ ReqHeader: ปิด
- ReqUnset x-forwarded-for: 1178.xxx.xxx.xxx
- ReqHeader X-ส่งต่อสำหรับ: 1178.xxx.xxx.xxx, 10.xxx.xxx.xxx
- VCL_call RECV
- คุกกี้ ReqUnset: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; __utma=46365988.836346559.1644414441.16
- คุกกี้ ReqHeader: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; cs_fpid=1645804349272_22538249; wt_geid
- คุกกี้ ReqUnset: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; cs_fpid=1645804349272_22538249; wt_geid
- คุกกี้ ReqHeader: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; cs_fpid=1645804349272_22538249; wt_geid
- คุกกี้ ReqUnset: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; cs_fpid=1645804349272_22538249; wt_geid
- คุกกี้ ReqHeader: wt_rla=292330999892453%2C2%2C1646731482026; _pipe_c=do_not_track; _ga=GA1.2.836346559.1644414441; __gads=ID=453223b8518b57e5-22f191e137cd00c3:T=1644414444:RT=1644414444:S=ALNI_MbCUi8liJ5sbhjlTe68z1BhLhZJCQ; cs_fpid=1645804349272_22538249; wt_geid
- แฮช VCL_return
- ReqUnset ยอมรับการเข้ารหัส: gzip, deflate, br
- ReqHeader ยอมรับการเข้ารหัส: gzip
- VCL_call แฮช
- การค้นหา VCL_return
- กด 1410469
- VCL_call HIT
- VCL_return ส่งมอบ
- โปรโตคอลการตอบสนอง HTTP/1.1
- สถานะตอบกลับ 200
- RespReason ตกลง
- วันที่ตอบกลับ: วันศุกร์ที่ 11 มีนาคม 2022 10:42:05 GMT
- เซิร์ฟเวอร์ RespHeader: Apache-Coyote/1.1
- ประเภทเนื้อหา RespHeader: text/html;charset=UTF-8
- RespHeader Set-Cookie: JSESSIONID=F8D07853DF7D90A3F381B316F64FA285; เส้นทาง=/; httpOnly
- RespHeader X-วานิช: 1410492 1410469
- อายุหัวหน้าทีม: 84
- RespHeader ผ่าน: 1.1 varnish-v4
- ส่ง VCL_call
- RespHeader X-Cache-Host: rsi-prod-varnish45
- ตัวเลือก RespHeader X-Frame: SAMEORIGIN
- RespHeader X-XSS-การป้องกัน: 1; โหมด = บล็อก
- RespHeader X-Content-Type-Options: ไร้สาระ
- นโยบายความปลอดภัยเนื้อหา RespHeader: script-src 'self' 'unsafe-inline' 'unsafe-eval' *
- RespHeader X-Cache: HIT
- RespHeader X-Cache-Hits: 3
- RespHeader X-Grace-Hit: ใช่
- VCL_return ส่งมอบ
- ขั้นตอนการประทับเวลา: 1646995409.603614 0.000222 0.000222
- ช่วงที่ยอมรับ RespHeader: ไบต์
- ความยาวของเนื้อหา RespHeader: 191244
- ดีบัก "RES_MODE 2"
- การเชื่อมต่อ RespHeader: ปิด
- การประทับเวลา ตอบกลับ: 1646995409.608024 0.004632 0.004410
- ReqAcct 1130 0 1130 574 191244 191818
- จบ
เบราว์เซอร์
* << คำขอ >> 1410496
- เริ่มต้น req 1410495 rxreq
- เวลาเริ่มต้น: 1646995426.730217 0.000000 0.000000
- การประทับเวลาที่ต้องการ: 1646995426.730217 0.000000 0.000000
- ReqStart 10.xxx.xxx.xxx 60908
- ReqMethod รับ
- ความต้องการ /
- ReqProtocol HTTP/1.1
- โฮสต์ ReqHeader: www.example.com
- ตัวแทนผู้ใช้ ReqHeader: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
- ReqHeader ยอมรับ: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
- ภาษาที่ยอมรับของ ReqHeader: it,it-IT;q=0.8,en-US;q=0.5,en;q=0.3
- ReqHeader ยอมรับการเข้ารหัส: gzip, deflate, br
- คุกกี้ ReqHeader: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; __utma=46365988.1217589648.1620392041.1638545296.1642173864.10; __utmz=46365988.16
- คำขออัปเกรด ReqHeader-ไม่ปลอดภัย: 1
- การควบคุมแคช ReqHeader: max-age=0
- ReqHeader x-forwarded-proto: https
- ReqHeader x-forwarded-ssl: เปิด
- ReqHeader x-forwarded-port: 443
- ReqHeader x-forwarded-for: 178.xxx.xxx.xxx
- การเชื่อมต่อ ReqHeader: ปิด
- ReqUnset x-forwarded-for: 178.xxx.xxx.xxx
- ReqHeader X-ส่งต่อสำหรับ: 178.xxx.xxx.xxx, 10.xxx.xxx.xxx
- VCL_call RECV
- คุกกี้ ReqUnset: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; __utma=46365988.1217589648.1620392041.1638545296.1642173864.10; __utmz=46365988.16
- คุกกี้ ReqHeader: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; wt_rla=292330999892453%2C2%2C1646995242972; cs_fpid=1645855325408_55998969; จส
- ReqUnset คุกกี้: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; wt_rla=292330999892453%2C2%2C1646995242972; cs_fpid=1645855325408_55998969; จส
- คุกกี้ ReqHeader: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; wt_rla=292330999892453%2C2%2C1646995242972; cs_fpid=1645855325408_55998969; จส
- ReqUnset คุกกี้: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; wt_rla=292330999892453%2C2%2C1646995242972; cs_fpid=1645855325408_55998969; จส
- คุกกี้ ReqHeader: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; wt_rla=292330999892453%2C2%2C1646995242972; cs_fpid=1645855325408_55998969; จส
- แฮช VCL_return
- ReqUnset ยอมรับการเข้ารหัส: gzip, deflate, br
- ReqHeader ยอมรับการเข้ารหัส: gzip
- VCL_call แฮช
- การค้นหา VCL_return
- VCL_call MISS
- VCL_return ดึงข้อมูล
- ลิงค์ bereq 1410497 ดึงข้อมูล
- การดึงข้อมูลประทับเวลา: 1646995426.730455 0.000238 0.000238
- โปรโตคอลการตอบสนอง HTTP/1.1
- RespStatus 503
- การดึงข้อมูลแบ็กเอนด์ RespReason ล้มเหลว
- วันที่ตอบกลับ: วันศุกร์ที่ 11 มีนาคม 2022 10:43:46 GMT
- เซิร์ฟเวอร์ RespHeader: วานิช
- ประเภทเนื้อหา RespHeader: text/html; ชุดอักขระ=utf-8
- RespHeader ลองใหม่หลังจาก: 5
- RespHeader X-วานิช: 1410496
- อายุหัวหน้าทีม: 0
- RespHeader ผ่าน: 1.1 varnish-v4
- ส่ง VCL_call
- RespHeader X-Cache-Host: rsi-prod-varnish45
- ตัวเลือก RespHeader X-Frame: SAMEORIGIN
- RespHeader X-XSS-การป้องกัน: 1; โหมด = บล็อก
- RespHeader X-Content-Type-Options: ไร้สาระ
- นโยบายความปลอดภัยเนื้อหา RespHeader: script-src 'self' 'unsafe-inline' 'unsafe-eval' *
- RespHeader X-Cache: HIT
- RespHeader X-Cache-Hits: 0
- RespHeader X-Grace-Hit: ใช่
- VCL_return ส่งมอบ
- ขั้นตอนการประทับเวลา: 1646995426.730495 0.000278 0.000040
- ความยาวของเนื้อหา RespHeader: 284
- ดีบัก "RES_MODE 2"
- การเชื่อมต่อ RespHeader: ปิด
- การประทับเวลา ตอบกลับ: 1646995426.730527 0.000310 0.000032
- ReqAcct 929 0 929 490 284 774
- จบ
** << BeReq >> 1410497
-- เริ่มต้นการดึงข้อมูล 1410496
-- การประทับเวลาเริ่มต้น: 1646995426.730367 0.000000 0.000000
-- BereqMethod รับ
-- BereqURL /
-- BereqProtocol HTTP/1.1
-- โฮสต์ BereqHeader: www.example.com
-- ตัวแทนผู้ใช้ BereqHeader: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:88.0) Gecko/20100101 Firefox/88.0
-- BereqHeader ยอมรับ: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
-- BereqHeader ยอมรับภาษา: it,it-IT;q=0.8,en-US;q=0.5,en;q=0.3
-- คำขออัปเกรด BereqHeader-ไม่ปลอดภัย: 1
-- BereqHeader x-forwarded-proto: https
-- BereqHeader x-forwarded-ssl: เปิด
-- BereqHeader x-ส่งต่อพอร์ต: 443
-- BereqHeader X-ส่งต่อสำหรับ: 178.xxx.xxx.xxx, 10.xxx.xxx.xxx
-- คุกกี้ BereqHeader: _pipe_c=do_not_track; _ga=GA1.2.1217589648.1620392041; __gads=ID=1a22b33c44d55e6f-1a22b33c44d55e6f:T=1620392042:RT=1620392042:S=ALNI_MYR9nyXrxcQ8QV1Y2pNVDp67Gn9-w; wt_rla=292330999892453%2C2%2C1646995242972; cs_fpid=1645855325408_55998969; จส
-- BereqHeader ยอมรับการเข้ารหัส: gzip
-- BereqHeader X-วานิช: 1410497
-- VCL_call BACKEND_FETCH
-- การดึงแบ็กเอนด์ VCL_Log: v_ssl_ece
-- VCL_return ดึงข้อมูล
-- FetchError Director v_ssl_ece ไม่ส่งคืนแบ็กเอนด์
-- FetchError ไม่มีแบ็กเอนด์
-- การประทับเวลา Beresp: 1646995426.730387 0.000020 0.000020
-- ข้อผิดพลาดในการประทับเวลา: 1646995426.730390 0.000023 0.000003
-- Berespโปรโตคอล HTTP/1.1
-- BerespStatus 503
-- บริการ BerespReason ไม่พร้อมใช้งาน
-- การดึงแบ็กเอนด์ BerespReason ล้มเหลว
-- BerespHeader วันที่: ศุกร์ 11 มีนาคม 2022 10:43:46 GMT
-- เซิร์ฟเวอร์ BerespHeader: วานิช
-- VCL_call BACKEND_ERROR
-- ประเภทเนื้อหา BerespHeader: text/html; ชุดอักขระ=utf-8
-- BerespHeader ลองใหม่หลังจาก: 5
-- VCL_return ส่ง
-- ที่เก็บข้อมูล Malloc ชั่วคราว
-- ObjProtocol HTTP/1.1
-- สถานะวัตถุ 503
-- การดึงแบ็กเอนด์ ObjReason ล้มเหลว
-- วันที่ ObjHeader: ศุกร์ 11 มีนาคม 2022 10:43:46 GMT
-- เซิร์ฟเวอร์ ObjHeader: วานิช
-- ประเภทเนื้อหา ObjHeader: text/html; ชุดอักขระ=utf-8
-- ObjHeader ลองใหม่หลังจาก: 5
-- ยาว 284
-- BereqAcct 0 0 0 0 0 0
-- จบ
แก้ไข 2: แฮชและคุกกี้
หลังจากการตรวจสอบหลายครั้ง เราพบว่าปัญหาอยู่ในการกำหนดค่านี้:
ย่อย vcl_hash {
hash_data( req.url );
ถ้า (req.http.host) {
hash_data(req.http.host );
} อื่น {
hash_data( server.ip );
}
# แฮชคุกกี้สำหรับวัตถุที่มีการรับรองความถูกต้อง
ถ้า(req.http.Cookie) {
hash_data( req.http.Cookie );
}
กลับ ( ค้นหา );
}
หากคุกกี้ถูกลบออกจากแฮชวานิช มันจะส่งคืนแคชอย่างถูกต้อง
การรวมคุกกี้ไว้ในแฮชมีประโยชน์หรือไม่ เมื่อมองแวบแรก ฉันคิดเช่นนั้น หากมีการใช้คุกกี้เพื่อติดตามการตรวจสอบผู้ใช้ เราจะรวมเฉพาะคุกกี้บางตัวในแฮช (เช่น คุกกี้จากเซสชันที่ผ่านการรับรองความถูกต้อง) และไม่รวมคุกกี้ที่ไม่มีประโยชน์สำหรับการแคช (เช่น คุกกี้ที่เกี่ยวข้องกับการวิเคราะห์) ได้อย่างไร