Score:0

วานิช 4.1 - วิธีให้บริการสำเนาแคชในการดึงข้อมูลส่วนหลังล้มเหลวแทนที่จะเป็น 503

ธง sn

ฉันมีไซต์ที่ให้บริการโดย 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 );
  }
  กลับ ( ค้นหา );
}

หากคุกกี้ถูกลบออกจากแฮชวานิช มันจะส่งคืนแคชอย่างถูกต้อง การรวมคุกกี้ไว้ในแฮชมีประโยชน์หรือไม่ เมื่อมองแวบแรก ฉันคิดเช่นนั้น หากมีการใช้คุกกี้เพื่อติดตามการตรวจสอบผู้ใช้ เราจะรวมเฉพาะคุกกี้บางตัวในแฮช (เช่น คุกกี้จากเซสชันที่ผ่านการรับรองความถูกต้อง) และไม่รวมคุกกี้ที่ไม่มีประโยชน์สำหรับการแคช (เช่น คุกกี้ที่เกี่ยวข้องกับการวิเคราะห์) ได้อย่างไร

Score:0
ธง in

ตราบใดที่ผลรวมของ TTL และค่าเกรซมีค่ามากกว่าศูนย์ จะไม่มีการดึงแบ็กเอนด์

หาก TTL ของคุณหมดอายุ โหมดผ่อนผันจะทำให้แน่ใจว่ามีการแสดงเนื้อหาเก่าในขณะที่พยายามดึงข้อมูล

เกรซซึ่งเป็นก ค้างในขณะที่ตรวจสอบใหม่ กลไกสามารถใช้ในทางที่ผิดและกลายเป็น ค้างถ้าข้อผิดพลาด กลไก. ด้วยการตั้งค่าความผ่อนผันให้สูงพอ ผู้ใช้จะไม่มีวันพบกับการหยุดทำงานของแบ็กเอนด์

นี่คือ VCL บางส่วน:

vcl 4.1;

นำเข้ามาตรฐาน;

ย่อย vcl_recv {
    ถ้า (std.healthy(req.backend_hint)) {
        ตั้ง req.grace = 10s;
    }
}

ย่อย vcl_backend_response {
    ตั้ง beresp.grace = 24h;
}

รหัส VCL นี้จะบังคับใช้การผ่อนผัน 24 ชั่วโมง ซึ่งหมายความว่าแบ็กเอนด์ของคุณอาจหยุดทำงานหนึ่งวันโดยไม่มีใครสังเกตเห็น อย่างไรก็ตาม ตราบใดที่แบ็กเอนด์ยังดีอยู่ วานิชจะใช้เพียง 10 วินาทีแห่งพระคุณ

สิ่งสำคัญคือคำจำกัดความแบ็กเอนด์ของคุณต้องมี .probe คุณสมบัติที่หมายถึงโพรบตรวจสุขภาพ มิฉะนั้น std.healthy(req.backend_hint) จะไม่สามารถสร้างผลลัพธ์ที่ถูกต้องได้เลย

ฉันใช้ ตั้ง beresp.grace = 24 ชม ซึ่งอาจจะมากเกินไป ด้วยการตั้งค่าการผ่อนผันให้เป็นระยะเวลาที่สูง วัตถุเหล่านี้จะยังคงอยู่ในแคชในขณะที่หมดอายุ หากคุณมีแคตตาล็อกเนื้อหาจำนวนมากที่ต้องแคช อาจส่งผลต่ออัตราการเข้าใช้ของคุณและอาจถูกบังคับให้ลบแคชเมื่อแคชเต็ม

สิ่งสำคัญ: Varnish Cache 4.1 หมดอายุแล้วและไม่ควรใช้ โปรดติดตั้งวานิช 6.0 LTS หรือวานิช 7 แทน

ตัวอย่าง VCL ของฉันมีไฟล์ vcl 4.1; ตัวทำเครื่องหมายเวอร์ชันซึ่งจะใช้ได้เฉพาะในวานิช 6 หรือวานิช 7 ฉันทำสิ่งนี้โดยมีวัตถุประสงค์เพื่อส่งเสริมให้ผู้ใช้ใช้วานิชเวอร์ชันล่าสุด โดยเปลี่ยนเป็น vcl 4.0; รหัสอาจจะใช้ได้กับวานิชรุ่นเก่า โปรดพิจารณาปรับปรุง

ข้อผิดพลาด 503

จากเอาต์พุต VSL ที่คุณเพิ่มในคำถามของคุณ ฉันสามารถสรุปได้ว่าคุณได้กำหนดและใช้ออบเจกต์ผู้กำกับใน VCL ของคุณที่ไม่มีแบ็กเอนด์

นี่เป็นข้อผิดพลาดที่ฉันพบในเอาต์พุต VSL ของคุณ:

ผู้อำนวยการ v_ssl_ece ไม่ส่งคืนแบ็กเอนด์

โปรดดูชื่อผู้กำกับ v_ssl_ece.

  • ตรวจสอบว่าคุณต้องการผู้กำกับคนนี้หรือไม่
  • ตรวจสอบว่ามีการกำหนดอย่างถูกต้องผ่าน req.backend_hint ใน vcl_recv หรือผ่าน bereq.backend ใน vcl_backend_fetch
  • ตรวจสอบว่าทำไม v_ssl_ece ไม่มีส่วนหลังใด ๆ

หากคุณไม่พบวิธีแก้ไข โปรดแชร์ไฟล์ VCL แบบเต็มของคุณ เพื่อให้เราสามารถช่วยได้

Erich avatar
sn flag
ขอบคุณมาก ๆ! น่าเสียดายที่ฉันไม่สามารถอัปเดตวานิชเป็นเวอร์ชันใหม่ได้ :-/ โซลูชันของคุณทำงานได้ดีมากถ้าฉันใช้ curl แต่ถ้าฉันใช้เบราว์เซอร์ (chrome หรือ firefox) วานิชจะส่งคืนข้อผิดพลาด 503 ฉันพยายามจำลองคำขอ firefox ด้วย curl โดยใช้ส่วนหัว http ทั้งหมดที่ firefox ส่งไปยังเซิร์ฟเวอร์ แต่วานิชส่งคืน 200 ตกลงถ้าฉันใช้ curl และ 503 ถ้าฉันใช้ firefox คุณมีเงื่อนงำเกี่ยวกับเรื่องนี้หรือไม่? ขอบคุณอีกครั้ง
Thijs Feryn avatar
in flag
โปรดเพิ่มผลลัพธ์ของ `varnishlog -g request -q "ReqUrl eq '/'"` ในคำถาม คำสั่งนี้จะพิมพ์บันทึกสำหรับหน้าแรก ตรวจสอบว่าคุณใช้เบราว์เซอร์เพื่อเรียกหน้าแรก หากคุณได้รับข้อผิดพลาด บันทึกอาจบอกเราว่าทำไม
Erich avatar
sn flag
ฉันได้เพิ่มผลลัพธ์ของ `varnishlog -g request -q "ReqUrl eq '/'"` ในคำถาม ทั้งสำหรับคำขอจาก curl และคำขอจาก firefox เห็นอะไรที่จะช่วยเราได้บ้าง? ขอบคุณอีกครั้ง
Thijs Feryn avatar
in flag
@Erich ฉันอัปเดตคำตอบพร้อมข้อมูลเกี่ยวกับเอาต์พุต VSL
Erich avatar
sn flag
ขออภัยที่ตอบกลับล่าช้า เราพยายามอย่างมากในการค้นหาปัญหา ฉันได้อัปเดตคำถามของฉันอีกครั้งและหวังว่าคุณจะมีข้อเสนอแนะที่เป็นประโยชน์ ขอบคุณมาก ๆ!
Thijs Feryn avatar
in flag
@Erich โปรดอย่าเพิ่มคุกกี้ในแฮช เพราะจะทำให้เกิดการเปลี่ยนแปลงของแคชมากเกินไปและขาดหายไปมากเกินไป หากคุณต้องการสร้างรูปแบบแคชตามค่าคุกกี้ โปรดแยกคุกกี้ที่เลือกและตรวจสอบความถูกต้องของเนื้อหาเพื่อหลีกเลี่ยงการเติมแคชของคุณด้วยรูปแบบแคชที่ไม่มีความหมาย
Thijs Feryn avatar
in flag
@Erich โปรดเพิ่มโค้ด VCL แบบเต็มของคุณด้วย ไม่ใช่แค่การแตก `hash_data` ฉันต้องการทำความเข้าใจว่าเกิดอะไรขึ้นจริง ๆ และบอกคุณว่าต้องเปลี่ยนแปลงอะไรบ้างเพื่อบังคับใช้ *stale หากเกิดข้อผิดพลาด* เมื่อแบ็กเอนด์หยุดทำงาน ความคิดเห็นเริ่มต้นของฉันคือ `Set-Cookie: JSESSIONID=F8D07853DF7D90A3F381B316F64FA285; เส้นทาง=/; HttpOnly` อาจเป็นสาเหตุที่ทำให้เนื้อหาไม่ถูกจัดเก็บไว้ในแคช ดู https://www.varnish-software.com/developers/tutorials/varnish-builtin-vcl/#dont-cache-responses-with-set-cookie-headers สำหรับข้อมูลเพิ่มเติม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา