เมื่อ Collabora Online แจ้งว่าการเชื่อมต่อซ็อกเก็ตปิดลงโดยไม่คาดคิด ให้ตรวจสอบก่อนว่าคำขอ WebSocket ของเบราว์เซอร์ผ่านcoolwsdพร็อกซีแบบย้อนกลับหรือไม่ จับคู่เส้นทางพร็อกซีกับเวอร์ชัน Collabora รักษาการอัปเกรด WebSocket และเส้นทาง URL ไว้ จากนั้นทดสอบเอกสารหนึ่งฉบับในขณะที่ดูแผงเครือข่ายของเบราว์เซอร์และบันทึกเซิร์ฟเวอร์ หากปัญหาเริ่มต้นหลังจากอัปเกรดเป็น CODE 26.04 ที่อยู่เบื้องหลัง Apache ให้ตรวจสอบProxyPassกฎของ Apache ก่อน: บันทึกการเผยแพร่เวอร์ชัน 26.04 ของ Collabora ระบุถึงการเปลี่ยนแปลงสำหรับ URL WebSocket แบบกระชับ
WebSocket คือการเชื่อมต่อแบบสองทางที่มีอายุการใช้งานยาวนาน ซึ่ง Collabora ใช้ระหว่างเบราว์เซอร์และเซิร์ฟเวอร์ขณะที่เอกสารเปิดอยู่ Reverse Proxy คือบริการที่รับคำขอสาธารณะและส่งต่อไปยัง Collabora ข้อความแสดงข้อผิดพลาดชี้ไปที่การเชื่อมต่อดังกล่าว แต่ไม่ได้พิสูจน์ว่า Proxy เป็นสาเหตุเสมอไป การปฏิเสธ WOPI host, URL สาธารณะที่ไม่ถูกต้อง, ความไม่ตรงกันของ TLS หรือ backend ที่ไม่ถูกต้อง ก็สามารถทำให้เซสชันหยุดทำงานได้เช่นกัน
หน้าต่างโต้ตอบแสดงข้อความ "socket-closed" ซึ่งเป็นจุดเริ่มต้นของการตรวจสอบแก้ไขปัญหาครั้งนี้
ก่อนที่จะเปลี่ยนแปลงอะไร ให้กำหนดเส้นทางของคุณก่อน
จดบันทึกเวอร์ชันหรือแท็กรูปภาพของ Collabora, ซอฟต์แวร์พร็อกซี, ชื่อโฮสต์สาธารณะของ Collabora และระบุว่า TLS สิ้นสุดที่พร็อกซีหรือที่ Collabora ตรวจสอบชื่อบริการและรูปภาพปัจจุบันโดยไม่ต้องเปลี่ยนแปลงการปรับใช้:
docker compose ps collabora
docker compose images collabora
แทนที่collaboraด้วยชื่อบริการในไฟล์ Compose ของคุณ สำหรับคอนเทนเนอร์ที่ไม่ใช่ Compose ให้ใช้docker psและdocker inspectเพื่อระบุคอนเทนเนอร์และอิมเมจ อย่าคิดว่าlatestแท็กยังคงชี้ไปยังเวอร์ชันเดียวกับที่คุณทดสอบเมื่อสัปดาห์ที่แล้ว
1. ดูว่าการเชื่อมต่อ WebSocket สิ้นสุดลงที่จุดใด
ในเบราว์เซอร์ ให้เปิดเครื่องมือสำหรับนักพัฒนา เลือกเครือข่ายกรองหาWSหรือ WebSocket แล้วลองเปิดเอกสารอีกครั้ง URL ที่ร้องขอควรใช้wss://เมื่อหน้าเว็บสาธารณะเป็น HTTPS เลือกคำขอที่ล้มเหลวและจดบันทึกสถานะ เส้นทาง URL และส่วนหัวการตอบกลับ การเชื่อมต่อที่สำเร็จโดยปกติจะส่งคืนค่า101 Switching Protocolsและยังคงเปิดอยู่ตราบใดที่เซสชันเอกสารยังทำงานอยู่
ใช้สถานะและเส้นทางของคำขอ WebSocket เพื่อระบุจุดที่ล้มเหลว แผงนี้เป็นเพียงตัวอย่างประกอบ
- ไม่พบคำขอ WebSocket:โปรดตรวจสอบ URL ของแอปพลิเคชันการผสานรวม Collabora, คอนโซลของเบราว์เซอร์, DNS และข้อผิดพลาดในการเปลี่ยนเส้นทางหรือเนื้อหาผสมใดๆ ก่อนแก้ไขกฎของเซิร์ฟเวอร์
- หากคำขอส่งกลับมาเป็นรหัส 400 หรือ 404:ให้เปรียบเทียบเส้นทางที่ร้องขอ กับเส้นทางที่พร็อกซีของคุณส่งต่อ และเส้นทางที่รองรับโดยเวอร์ชัน Collabora ที่ติดตั้งไว้ รหัส 400 ที่
coolwsdระบุว่า “คำขอไม่ถูกต้องหรือไม่รู้จัก” อาจหมายความว่าคำขอมาถึง Collabora ด้วยเส้นทางที่ Collabora ไม่ยอมรับ
- หากคำขอส่งค่ากลับเป็น 502 หรือ 504ให้ตรวจสอบว่าพร็อกซีสามารถเชื่อมต่อกับเซิร์ฟเวอร์อัปสตรีมของ Collabora ที่กำหนดค่าไว้ได้หรือไม่ และตรวจสอบว่าที่อยู่และพอร์ตชี้ไปยังคอนเทนเนอร์หรือโฮสต์ที่ถูกต้องหรือไม่
- คำขอส่งค่ากลับเป็น 101 จากนั้นจึงปิดการเชื่อมต่อในภายหลัง:ตรวจสอบพร็อกซี, โหลดบาลานเซอร์, ไฟร์วอลล์ และการหมดเวลาของการเชื่อมต่อที่ไม่ได้ใช้งานในเครือข่ายไคลเอ็นต์ การเชื่อมต่อ WebSocket มีอายุการใช้งานยาวนาน ดังนั้นตัวกลางที่ปิดการเชื่อมต่อที่ไม่ได้ใช้งานเร็วเกินไปอาจขัดจังหวะการเปิดใช้งานที่ประสบความสำเร็จได้
2. เปรียบเทียบกฎพร็อกซีกับเวอร์ชัน Collabora ของคุณ
ใช้การตั้งค่า reverse-proxy ปัจจุบันของ Collabora สำหรับซอฟต์แวร์และเวอร์ชันพร็อกซีที่คุณใช้งาน ตรวจสอบให้แน่ใจว่าเส้นทาง WebSocket ถูกจัดการเป็น WebSocket ว่าพร็อกซีส่งต่อส่วนหัวการอัปเกรด และว่าพร็อกซีรักษาเส้นทางและสตริงคำค้นหาที่เข้ารหัสไว้แทนที่จะเปลี่ยนเส้นทางหรือเขียนใหม่ พร็อกซีต้องส่งโฮสต์สาธารณะและรูปแบบให้สอดคล้องกับชื่อเซิร์ฟเวอร์ภายนอกและการตั้งค่าการยุติ TLS ที่กำหนดค่าไว้ใน Collabora ด้วย
สำหรับ Nginx ให้ตรวจสอบตำแหน่งเฉพาะของ WebSocket และ HTTP/1.1 UpgradeรวมถึงConnectionคำสั่งการส่งต่อในตัวอย่างปัจจุบันของ Collabora สำหรับ Apache ให้เปรียบเทียบProxyPassกฎและลำดับกับตัวอย่างปัจจุบัน อย่าคัดลอก/cool/…/wsส่วนที่ตรงกันเก่าโดยไม่เปลี่ยนแปลงโดยไม่ตรวจสอบว่าเวอร์ชันที่ติดตั้งของคุณในปัจจุบันต้องการอะไร
การตรวจสอบเวอร์ชันนี้มีความสำคัญสำหรับ CODE 26.04 บันทึกการเผยแพร่ของ Collabora ซึ่งเผยแพร่เมื่อวันที่ 8 มิถุนายน 2026 อธิบายถึง URL WebSocket ที่กระชับยิ่งขึ้น และระบุว่าผู้ใช้ Apache reverse-proxy จำเป็นต้องปรับแต่งProxyPassให้เข้ากับ URL นี้ การทำงานในเวอร์ชัน 26.04 ในภายหลังได้เพิ่มพฤติกรรมสำรองสำหรับ URL แบบเก่า ดังนั้นกฎเก่าอาจยังคงใช้งานได้ในบางเวอร์ชันรายงาน WebSocket เวอร์ชัน 26.04ที่ได้รับการแก้ไขของ Collabora ได้บันทึกรายละเอียดเพิ่มเติมเกี่ยวกับเรื่องนี้ การทำงานสำรองนี้ไม่ใช่สิ่งทดแทนการจับคู่การกำหนดค่าพร็อกซีปัจจุบันกับเวอร์ชันที่ติดตั้ง โปรดอ่านบันทึกการเผยแพร่ CODE 26.04และตัวอย่าง SDK ที่อัปเดตแล้วควบคู่กันไป
ตัวอย่างที่ตัดทอนบางส่วนนี้แสดงให้เห็นถึงเส้นทางการร้องขอที่ไม่ถูกต้อง เพื่อนำไปเปรียบเทียบกับเส้นทางที่พร็อกซีของคุณส่งต่อ ไม่ใช่การบันทึกข้อมูลแบบเรียลไทม์
3. บันทึกข้อผิดพลาดหนึ่งอย่างและทำการเปลี่ยนแปลงที่ตรงเป้าหมายหนึ่งอย่าง
เริ่มสตรีมบันทึกสั้นๆ ก่อนลองเปิดเอกสารอีกครั้ง--sinceตัวเลือกของ Docker จะจำกัดเอาต์พุตเริ่มต้น ในขณะที่ ตัวเลือกอื่นๆ จะเพิ่มบรรทัดใหม่เรื่อยๆ โปรด--followดูข้อมูลอ้างอิงเกี่ยวกับบันทึกของ Docker Compose
docker compose logs --since=2m --follow collabora
บันทึกเวลาที่ทำการทดสอบและตรวจสอบหาคำขอเดียวกันในบันทึกของ Collabora และพร็อกซี หากเบราว์เซอร์ร้องขอเส้นทางที่พร็อกซีส่งต่อไปยังแบ็กเอนด์ที่ไม่ถูกต้อง ให้ทำการอัปเดตเฉพาะเส้นทาง WebSocket นั้นโดยใช้ตัวอย่างที่ตรงกับเวอร์ชันของ Collabora หากคำขอมาถึง Collabora แต่โฮสต์ ต้นทาง หรือรูปแบบถูกปฏิเสธ ให้เปรียบเทียบชื่อโฮสต์สาธารณะและพอร์ตกับชื่อเซิร์ฟเวอร์ที่กำหนดค่าไว้และส่วนหัวที่ส่งต่อ หากบันทึกแสดงการปฏิเสธโฮสต์ WOPI หรือคำขอข้อมูลไฟล์ล้มเหลว ให้ตรวจสอบโฮสต์ที่อนุญาตของเซิร์ฟเวอร์การรวมระบบและการเข้าถึงได้จากคอนเทนเนอร์ Collabora ซึ่งเป็นขั้นตอนที่แยกต่างหากจากการจับมือ WebSocket ของเบราว์เซอร์
รีโหลดพร็อกซีหลังจากตรวจสอบความถูกต้องของการกำหนดค่าด้วยคำสั่งตรวจสอบไวยากรณ์ของพร็อกซีนั้นเอง หลีกเลี่ยงการเปลี่ยนแปลงการยุติ TLS รายการอนุญาตโฮสต์ และการเขียน URL ใหม่พร้อมกัน: การเปลี่ยนแปลงสาเหตุหนึ่งอย่างต่อการทดสอบหนึ่งครั้งจะทำให้ผลลัพธ์ครั้งต่อไปสามารถตีความได้ อย่าปิดการตรวจสอบ TLS หรืออนุญาตโฮสต์ WOPI ทุกตัวเป็นทางลัด
4. ตรวจสอบการแก้ไขจากเบราว์เซอร์ไปยังเอกสาร
ลองเข้าถึงเอกสารเดิมอีกครั้ง ในเครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ ให้ตรวจสอบว่าคำขอ WebSocket ตอบกลับ101 Switching Protocolsและยังคงเปิดอยู่ ตรวจสอบว่าเอกสารโหลดเสร็จสมบูรณ์ เชื่อมต่ออยู่ และยอมรับการแก้ไขเล็กน้อยที่บันทึกได้สำเร็จ สถานะการเชื่อมต่อที่สมบูรณ์เพียงอย่างเดียวไม่เพียงพอ หากการเข้าถึงหรือการบันทึกไฟล์ WOPI ยังคงล้มเหลว
การตอบสนอง 101 และการเชื่อมต่อที่เปิดอยู่ เป็นสัญญาณจากฝั่งเบราว์เซอร์ที่แสดงว่าการเชื่อมต่อ WebSocket ประสบความสำเร็จแล้ว
หากการเชื่อมต่อยังคงล้มเหลว ให้เปรียบเทียบเส้นทางการร้องขอของเบราว์เซอร์ บรรทัดการเข้าถึง/ข้อผิดพลาดของพร็อกซี และcoolwsdรายการบันทึกที่ตรงกันในเวลาเดียวกัน การเปรียบเทียบสามจุดนี้แสดงให้เห็นว่าเบราว์เซอร์ พร็อกซี เส้นทาง Collabora หรือโฮสต์ WOPI เป็นจุดที่ควรตรวจสอบต่อไป เมื่อขอความช่วยเหลือ โปรดลบโทเค็นการเข้าถึง ตัวระบุเอกสาร ชื่อผู้ใช้ และชื่อโฮสต์ส่วนตัวออกจากทั้งรายละเอียดของเบราว์เซอร์และบันทึก