ฉันกำลังพยายามปรับใช้ 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 เมื่อไม่ได้รับอนุญาต