Điểm:0

Không thể phục vụ hình ảnh từ trang wordpress - phản hồi không đúng định dạng

lá cờ in

Tôi đang cố gắng triển khai Wordpress phía sau Traefik trên Azure, sử dụng PersistentVolume được Azure Files hỗ trợ. Đối với hầu hết các phần, nó hoạt động. Tôi có thể thiết lập wordpress, định cấu hình, truy cập từ bên ngoài, chỉnh sửa nội dung, v.v.

Hình ảnh docker là hình ảnh chính thức trên Hub (https://hub.docker.com/_/wordpress). Thay đổi duy nhất tôi đã thực hiện là yêu cầu ứng dụng khách MYSQL sử dụng SSL, nếu không thì mọi thứ khác đều là vanilla.

Điều kỳ lạ là không có hình ảnh nào được phục vụ chính xác. Apache cho rằng nó phục vụ tốt cho họ, nhưng Traefik từ chối phản hồi là không đúng định dạng. Cụ thể, nó nhận được 'byte' thay vì mã phản hồi và ngắt kết nối, trả lại 500 cho trình duyệt.

Tôi đã truy tìm lại chính máy chủ apache và bị bối rối. Đây là những gì tôi thấy - một lần nữa, chỉ dành cho hình ảnh.

Điều này được chạy từ bên trong container ngồi trên AKS.

root@wordpress-7bd5ccfd77-drm96:/var/www/html# curl --http0.9 -iv --raw http://localhost:80/wp-includes/images/spinner.gif
* Đang thử ::1:80...
* Đã kết nối với cổng localhost (::1) 80 (#0)
> NHẬN /wp-gồm/hình ảnh/spinner.gif HTTP/1.1
> Máy chủ: máy chủ cục bộ
> Tác nhân người dùng: curl/7.74.0
> Chấp nhận: */*
>
địa chỉ: byte
Độ dài nội dung: 3656
Loại nội dung: hình ảnh/gif

GIF89a...

Như bạn có thể thấy, một phần của phản hồi HTTP cắt ngắn.

Nếu tôi làm điều tương tự nhưng yêu cầu nội dung trang, tôi không gặp vấn đề gì.

root@wordpress-7bd5ccfd77-drm96:/var/www/html# curl --http0.9 -iv --raw http://localhost:80/
* Đang thử ::1:80...
* Đã kết nối với cổng localhost (::1) 80 (#0)
> NHẬN / HTTP/1.1
> Máy chủ: máy chủ cục bộ
> Tác nhân người dùng: curl/7.74.0
> Chấp nhận: */*
>
* Đánh dấu gói là không hỗ trợ đa dụng
< HTTP/1.1 200 OK
HTTP/1.1 200 OK
< Ngày: Thứ Hai, ngày 17 tháng 1 năm 2022 09:15:33 GMT
...

Nếu tôi sao chép cùng một tệp ra khỏi nhóm từ xa hoặc qua tính năng chia sẻ tệp Azure Files từ xa, tệp sẽ hoạt động như mong đợi, vì vậy tệp không bị hỏng trên ổ đĩa hoặc với cách gắn ổ đĩa.

kubectl cp it-scribe-wordpress/wordpress-794cbff687-ts6q9:/var/www/html/wp-includes/images/spinner.gif ./spinner.gif
tar: Xóa `/' đứng đầu khỏi tên thành viên

Tôi nhận được một spinner.gif hoàn toàn hữu ích.

AFAICT nó chỉ xảy ra với hình ảnh. Bất kỳ suy nghĩ sẽ được nhiều đánh giá cao.

Ian

Chỉnh sửa: Lý do tôi sử dụng --http0.9 là không có nó, cuộn tròn không thành công sớm và không cho tôi xem phản hồi. Cờ chỉ ảnh hưởng đến quá trình xử lý của curl, không ảnh hưởng đến nội dung yêu cầu. Đây là một ví dụ không có cờ.

root@wordpress-7bd5ccfd77-drm96:/var/www/html# curl -iv --raw http://localhost:80/wp-includes/images/spinner.gif
* Đang thử ::1:80...
* Đã kết nối với cổng localhost (::1) 80 (#0)
> NHẬN /wp-gồm/hình ảnh/spinner.gif HTTP/1.1
> Máy chủ: máy chủ cục bộ
> Tác nhân người dùng: curl/7.74.0
> Chấp nhận: */*
>
* Đã nhận HTTP/0.9 khi không được phép

* Đóng kết nối 0
curl: (1) Đã nhận HTTP/0.9 khi không được phép
lá cờ jp
Tại sao bạn yêu cầu HTTP/0.9?
IanJ avatar
lá cờ in
Vì vậy, tôi đã mất vài giờ để tìm ra! Nếu tôi không sử dụng tham số đó, thì curl sẽ báo lỗi này cho tôi và không cho tôi xem phản hồi đầy đủ. Nó vẫn đưa ra yêu cầu là HTTP/1.1 như bạn có thể thấy. Tôi sẽ cập nhật câu hỏi để bao gồm đầu ra mà không có --http0.9
Điểm:0
lá cờ in

Tôi tin rằng đã xảy ra sự cố với sự tương tác giữa Tệp Azure, AKS CSI và Apache. Tôi chỉ có thể tái tạo hành vi này với Tệp Azure - các dạng ổ đĩa khác (Đĩa, tệp vùng chứa, NFS) đều hoạt động như mong đợi.

Có một số bằng chứng về những người khác đã đạt được điều này: https://github.com/Azure/AKS/issues/2614

Tôi đã làm việc xung quanh bằng cách sử dụng ngàm NFS.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.