Score:0

HTTP_IF_NONE_MATCH หายไปจากฝั่งเซิร์ฟเวอร์พร้อมกับคำขอของ Chrome ไปยัง NGINX

ธง ke

ฉันพยายามที่จะเพิ่ม อีแท็ก การยืนยันแคชตามเว็บแอปที่ฉันพัฒนาซึ่งทำงานบน Apache ผ่านพร็อกซีย้อนกลับ NGINX เว็บแอปเขียนด้วยภาษา Perl ในสคริปต์ Perl ฉันจะตรวจสอบ $ENV{'HTTP_IF_NONE_MATCH'} ส่วนหัวแล้วทดสอบ อีแท็ก ในนั้นถ้ามีอยู่ หากฉันเข้าถึงแอปผ่าน cURL มันใช้งานได้:

timothybutler@timothys-MacBook-Pro ~ % curl -I https://server/resource/podcast/20211101.mp3
HTTP/1.1 200 ตกลง
เซิร์ฟเวอร์: nginx/1.21.4
วันที่: วันศุกร์ที่ 12 พฤศจิกายน 2021 18:06:37 GMT
ประเภทเนื้อหา: เสียง/mpeg
ความยาวเนื้อหา: 16665729
การเชื่อมต่อ: มีชีวิตอยู่
Surrogate-Control: ไม่มีแคช
การควบคุมแคช: ส่วนตัว อายุสูงสุด=864000
ชื่อแท็ก: "1635825322"

การให้นั้น อีแท็ก กลับทาง cURL ฉันได้รับผลลัพธ์ที่คาดหวัง:

timothybutler@timothys-MacBook-Pro ~ % curl -H 'ถ้าไม่มีตรงกัน: "1635825322"' -I https://server/resource/podcast/20211101.mp3
HTTP/1.1 304 ไม่มีการแก้ไข
เซิร์ฟเวอร์: nginx/1.21.4
วันที่: วันศุกร์ที่ 12 พฤศจิกายน 2021 18:19:29 GMT
การเชื่อมต่อ: มีชีวิตอยู่
การควบคุมแคช: ส่วนตัว อายุสูงสุด=864000
ชื่อแท็ก: "1635825322"

อย่างไรก็ตาม กระบวนการจะพังหากฉันลองใช้ใน Chrome แทน Chrome รายงานการส่ง ถ้าไม่มีตรงกัน: "1635825322" เป็นหนึ่งในส่วนหัวเมื่อฉันรีเฟรชหน้า แต่เซิร์ฟเวอร์ของฉันไม่ได้ตั้งค่า HTTP_IF_NONE_MATCH ตัวแปรด้านสิ่งแวดล้อมสำหรับคำขอนั้นตรงข้ามกับตัวแปรที่เข้ามาทาง cURL ถ้าฉันทิ้งแฮช %ENV ทั้งหมด ถ้าตรงกันไม่มี ส่วนหัวและของมัน อีแท็ก ไม่ปรากฏในรูปแบบใดๆ เมื่อ Chrome ออกคำขอ

Gerard H. Pille avatar
in flag
ใช้ tcpdump เพื่อดูว่าใครทิ้ง Nginx หรือ Apache คุณบอกให้ Nginx ส่งผ่านหรือไม่ โอ้ แล้วทำไมคุณถึงใส่ reverse proxy ไว้หน้า reverse proxy?
ke flag
@ GerardH.Pille ฉันไม่มีประสบการณ์กับ tcpdump จริง ๆ - มีคำแนะนำที่ดีที่คุณสามารถให้ฉันอีกครั้ง: ตั้งค่าสถานะสำหรับการดูสิ่งนี้หรือไม่ สำหรับ NGINX นั้นให้บริการเนื้อหาคงที่สำหรับไซต์ ในขณะที่ฉันใช้ Apache เพื่อวางกระบวนการ FastCGI สำหรับ Perl ฉันพบปัญหาบางอย่างในการพยายามทำให้ FastCGI วางไข่อย่างถูกต้องโดยตรงภายใต้ NGINX
Gerard H. Pille avatar
in flag
ในกรณีนี้คุณควรปล่อยให้ Apache จัดการกับเนื้อหาคงที่ด้วย แต่ฉันค่อนข้างมั่นใจว่า Nginx สามารถจัดการทุกอย่างที่คุณต้องการได้ ดูตัวอย่างในหน้าคู่มือของ tcpdump IIRC ฉันจะเรียกใช้ "tcpdump -A -s0" บนพอร์ตที่ Apache กำลังฟังอยู่เพื่อดูว่า "ถ้าไม่มีการจับคู่" ยังคงอยู่หรือไม่ แต่: "คุณบอกให้ Nginx ส่งผ่านหรือไม่"

โพสต์คำตอบ

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