Score:0

ไม่สามารถให้บริการรูปภาพจากไซต์เวิร์ดเพรส - การตอบสนองมีรูปแบบไม่ถูกต้อง

ธง in

ฉันกำลังพยายามปรับใช้ Wordpress ที่อยู่เบื้องหลัง Traefik บน Azure โดยใช้ PersistentVolume ที่สนับสนุนโดย Azure Files ส่วนใหญ่ใช้งานได้ ฉันสามารถตั้งค่า wordpress กำหนดค่า เข้าถึงจากภายนอก ทำการแก้ไขเนื้อหา ฯลฯ

อิมเมจนักเทียบท่าเป็นภาพที่เป็นทางการบน Hub (https://hub.docker.com/_/wordpress). การเปลี่ยนแปลงเดียวที่ฉันทำคือการบอกไคลเอนต์ MYSQL ให้ใช้ SSL มิฉะนั้นทุกอย่างจะเป็นวานิลลา

ส่วนที่แปลกคือไม่มีการแสดงภาพอย่างถูกต้อง Apache คิดว่ามันใช้งานได้ดี แต่ Traefik ปฏิเสธการตอบสนองที่มีรูปแบบไม่ถูกต้อง โดยเฉพาะอย่างยิ่งจะได้รับ 'ไบต์' แทนรหัสตอบกลับและตัดการเชื่อมต่อ ส่งคืน 500 กลับไปที่เบราว์เซอร์

ฉันได้ตรวจสอบย้อนกลับไปยังเซิร์ฟเวอร์ apache เองและรู้สึกงุนงง นี่คือสิ่งที่ฉันเห็น - อีกครั้งสำหรับรูปภาพเท่านั้น

สิ่งนี้เรียกใช้จากภายในคอนเทนเนอร์ซึ่งนั่งอยู่บน AKS

root@wordpress-7bd5ccfd77-drm96:/var/www/html# curl --http0.9 -iv --raw http://localhost:80/wp-includes/images/spinner.gif
* ลอง ::1:80...
* เชื่อมต่อกับ localhost (::1) พอร์ต 80 (#0)
> รับ /wp-includes/images/spinner.gif HTTP/1.1
> โฮสต์: localhost
> User-Agent: curl/7.74.0
> ยอมรับ: */*
>
ges: ไบต์
ความยาวเนื้อหา: 3656
ประเภทเนื้อหา: รูปภาพ/gif

GIF89a...

อย่างที่คุณเห็น ส่วนหนึ่งของการตอบกลับ HTTP เป็น ถูกตัดทอน

ถ้าฉันทำสิ่งเดียวกันแต่ขอเนื้อหาของหน้า ฉันไม่มีปัญหาใดๆ

root@wordpress-7bd5ccfd77-drm96:/var/www/html# curl --http0.9 -iv --raw http://localhost:80/
* ลอง ::1:80...
* เชื่อมต่อกับ localhost (::1) พอร์ต 80 (#0)
> เก็ท / HTTP/1.1
> โฮสต์: localhost
> User-Agent: curl/7.74.0
> ยอมรับ: */*
>
* ทำเครื่องหมายที่บันเดิลว่าไม่รองรับการใช้งานหลายอย่าง
< HTTP/1.1 200 ตกลง
HTTP/1.1 200 ตกลง
< วันที่: จันทร์ที่ 17 มกราคม 2022 09:15:33 GMT
...

ถ้าฉันคัดลอกไฟล์เดียวกันออกจากพ็อดจากระยะไกล หรือผ่าน Azure Files fileshare จากระยะไกล ไฟล์นั้นจะออกมาตามที่คาดไว้ ดังนั้นจึงไม่เสียหายบนวอลุ่มหรือวิธีการเมาท์วอลุ่ม

kubectl cp it-scribe-wordpress/wordpress-794cbff687-ts6q9:/var/www/html/wp-includes/images/spinner.gif ./spinner.gif
tar: ลบ `/' นำหน้าออกจากชื่อสมาชิก

ฉันได้รับ spinner.gif ที่มีประโยชน์อย่างสมบูรณ์แบบ

AFAICT มันเกิดขึ้นกับภาพเท่านั้น ความคิดใด ๆ ที่จะได้รับการชื่นชมมาก

เอียน

แก้ไข: เหตุผลที่ฉันใช้ --http0.9 คือไม่มีมัน curl ล้มเหลวก่อนกำหนดและไม่ให้ฉันเห็นการตอบกลับ แฟล็กมีผลกับการประมวลผลของ curl ไม่ใช่เนื้อหาคำขอ นี่คือตัวอย่างที่ไม่มีแฟล็ก

root@wordpress-7bd5ccfd77-drm96:/var/www/html# curl -iv --raw http://localhost:80/wp-includes/images/spinner.gif
* ลอง ::1:80...
* เชื่อมต่อกับ localhost (::1) พอร์ต 80 (#0)
> รับ /wp-includes/images/spinner.gif HTTP/1.1
> โฮสต์: localhost
> User-Agent: curl/7.74.0
> ยอมรับ: */*
>
* รับ HTTP/0.9 เมื่อไม่ได้รับอนุญาต

* ปิดการเชื่อมต่อ 0
curl: (1) รับ HTTP/0.9 เมื่อไม่ได้รับอนุญาต
jp flag
ทำไมคุณขอ HTTP/0.9?
IanJ avatar
in flag
ฉันใช้เวลาสองสามชั่วโมงกว่าจะเข้าใจ! หากฉันไม่ใช้พารามิเตอร์นั้น curl จะแสดงข้อผิดพลาดนี้และจะไม่ให้ฉันเห็นการตอบกลับแบบเต็ม มันยังคงส่งคำขอเป็น HTTP/1.1 อย่างที่คุณเห็น ฉันจะอัปเดตคำถามเพื่อรวมผลลัพธ์ที่ไม่มี --http0.9
Score:0
ธง in

ฉันเชื่อว่ามีปัญหาเกี่ยวกับการโต้ตอบระหว่างไฟล์ Azure, AKS CSI และ Apache ฉันสามารถทำซ้ำลักษณะการทำงานนี้ด้วยไฟล์ Azure เท่านั้น - การเมานต์โวลุ่มรูปแบบอื่น (ดิสก์, ไฟล์คอนเทนเนอร์, NFS) ทั้งหมดทำงานตามที่คาดไว้

มีหลักฐานของคนอื่นที่โดนสิ่งนี้: https://github.com/Azure/AKS/issues/2614

ฉันได้แก้ไขโดยใช้การเมานต์ NFS

โพสต์คำตอบ

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