กู้คืนการเชื่อมต่อ WebSocket ของ Collabora ผ่านพร็อกซี

เมื่อ 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 ที่ล้มเหลวและส่งคืนสถานะ 400
ใช้สถานะและเส้นทางของคำขอ 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 ที่อัปเดตแล้วควบคู่กันไป

ตัวอย่างรูปแบบบันทึก coolwsd ที่ถูกแก้ไขแล้ว แสดงให้เห็นถึงคำขอที่ไม่ถูกต้องสำหรับเส้นทาง WebSocket แบบกระชับ
ตัวอย่างที่ตัดทอนบางส่วนนี้แสดงให้เห็นถึงเส้นทางการร้องขอที่ไม่ถูกต้อง เพื่อนำไปเปรียบเทียบกับเส้นทางที่พร็อกซีของคุณส่งต่อ ไม่ใช่การบันทึกข้อมูลแบบเรียลไทม์

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 ยังคงล้มเหลว

ภาพประกอบแผงเครือข่ายของเบราว์เซอร์ แสดงคำขอ WebSocket ที่มีสถานะ 101 กำลังสลับโปรโตคอล และสถานะเชื่อมต่อแล้ว
การตอบสนอง 101 และการเชื่อมต่อที่เปิดอยู่ เป็นสัญญาณจากฝั่งเบราว์เซอร์ที่แสดงว่าการเชื่อมต่อ WebSocket ประสบความสำเร็จแล้ว

หากการเชื่อมต่อยังคงล้มเหลว ให้เปรียบเทียบเส้นทางการร้องขอของเบราว์เซอร์ บรรทัดการเข้าถึง/ข้อผิดพลาดของพร็อกซี และcoolwsdรายการบันทึกที่ตรงกันในเวลาเดียวกัน การเปรียบเทียบสามจุดนี้แสดงให้เห็นว่าเบราว์เซอร์ พร็อกซี เส้นทาง Collabora หรือโฮสต์ WOPI เป็นจุดที่ควรตรวจสอบต่อไป เมื่อขอความช่วยเหลือ โปรดลบโทเค็นการเข้าถึง ตัวระบุเอกสาร ชื่อผู้ใช้ และชื่อโฮสต์ส่วนตัวออกจากทั้งรายละเอียดของเบราว์เซอร์และบันทึก

ฝากความเห็น

กู้คืนฟังก์ชันคัดลอกและวางระหว่าง Collabora และแอปพลิเคชันบนเดสก์ท็อป

กู้คืนฟังก์ชันคัดลอกและวางระหว่าง Collabora และแอปพลิเคชันบนเดสก์ท็อป

ทดสอบคลิปบอร์ดของระบบ ปรับสิทธิ์การเข้าถึงของเบราว์เซอร์ และระบุว่าเมื่อใดที่การผสานรวม Collabora ที่ฝังอยู่จำเป็นต้องมีการเปลี่ยนแปลงนโยบาย iframe

ทำให้สามารถใช้ฟอนต์แบบกำหนดเองได้ใน Collabora CODE Docker

ทำให้สามารถใช้ฟอนต์แบบกำหนดเองได้ใน Collabora CODE Docker

ติดตั้งไฟล์ฟอนต์ลงใน Docker และ systemplate ของ Collabora เพื่อให้แบบอักษรที่กำหนดเองปรากฏในโปรแกรมแก้ไขและแสดงผลได้อย่างถูกต้องในเอกสาร

กู้คืนการตั้งค่า Collabora CODE โดยไม่สูญเสียการเปลี่ยนแปลงการปรับใช้

กู้คืนการตั้งค่า Collabora CODE โดยไม่สูญเสียการเปลี่ยนแปลงการปรับใช้

สำรองข้อมูล coolwsd.xml และซอร์สโค้ดสำหรับการปรับใช้ กู้คืนอย่างปลอดภัย และตรวจสอบโค้ดก่อนที่ผู้ใช้จะกลับมาแก้ไขอีกครั้ง

แก้ไขการตรวจสอบโฮสต์ WOPI ของ CODE โดยการจับคู่ต้นทางของโฮสต์

แก้ไขการตรวจสอบโฮสต์ WOPI ของ CODE โดยการจับคู่ต้นทางของโฮสต์

อนุญาตให้ใช้ Nextcloud หรือ WOPI ต้นทางที่ถูกต้องในโค้ด จากนั้นตรวจสอบรายการอนุญาตโฮสต์ที่ใช้งานอยู่ และแยกแยะความแตกต่างจากข้อจำกัด IP ต้นทางของ Nextcloud

แก้ไขข้อผิดพลาด “นี่มันน่าอายจัง” ของ Collabora

แก้ไขข้อผิดพลาด “นี่มันน่าอายจัง” ของ Collabora

ตรวจสอบการเชื่อมต่อเบราว์เซอร์, WOPI และ WebSocket ของ Collabora เพื่อหาสาเหตุที่เอกสารเปิดไม่ได้ จากนั้นใช้การแก้ไขที่ตรงกับการตั้งค่า Nextcloud ของคุณ

เรียกใช้งาน Collabora Online บนโหนด Kubernetes

เรียกใช้งาน Collabora Online บนโหนด Kubernetes

ติดตั้ง Collabora CODE replicas ด้วย Helm เก็บเอกสารแต่ละฉบับไว้ใน pod เดียวผ่าน WOPI affinity และตรวจสอบ ingress การจัดวางโหนด และการแก้ไขใน Nextcloud

กู้คืนการเชื่อมต่อ WebSocket ของ Collabora ผ่านพร็อกซี

กู้คืนการเชื่อมต่อ WebSocket ของ Collabora ผ่านพร็อกซี

ตรวจสอบการเชื่อมต่อซ็อกเก็ตที่ล้มเหลวจากเบราว์เซอร์ไปยัง coolwsd จากนั้นจับคู่เส้นทางพร็อกซีแบบย้อนกลับกับเวอร์ชัน Collabora ของคุณ รวมถึงการเปลี่ยนแปลง Apache ใน CODE 26.04 ด้วย

แก้ไขข้อผิดพลาดการตรวจสอบ WOPI โดยตรวจสอบคีย์ การค้นหา และ URL

แก้ไขข้อผิดพลาดการตรวจสอบ WOPI โดยตรวจสอบคีย์ การค้นหา และ URL

ตรวจสอบหาสาเหตุของความล้มเหลวในการตรวจสอบความถูกต้องของ Collabora WOPI ที่เกิดจากคีย์ไม่ตรงกัน ข้อมูลการค้นหาที่ล้าสมัย การคลาดเคลื่อนของเวลา หรือการเปลี่ยนแปลง URL พร็อกซี โดยไม่ลดทอนประสิทธิภาพการตรวจสอบความถูกต้อง

แก้ไขปัญหาการแสดงผลผิดพลาดของเมนูเลือกขนาดตัวอักษรใน Collabora Online

แก้ไขปัญหาการแสดงผลผิดพลาดของเมนูเลือกขนาดตัวอักษรใน Collabora Online

รีเซ็ตการซูมของเบราว์เซอร์ ทดสอบเซสชันใหม่ และระบุว่าเมื่อใดที่เมนูที่มีขนาดผิดปกติจำเป็นต้องได้รับการอัปเดตเซิร์ฟเวอร์ Collabora

เชื่อมต่อ Nextcloud กับคอนเทนเนอร์ Collabora CODE ที่ติดตั้งเอง

เชื่อมต่อ Nextcloud กับคอนเทนเนอร์ Collabora CODE ที่ติดตั้งเอง

ติดตั้งใช้งาน Collabora CODE ด้วย Docker เชื่อมต่ออย่างปลอดภัยกับ Nextcloud Office และตรวจสอบความถูกต้องของการแก้ไขเอกสารด้วยการตรวจสอบ WOPI และพร็อกซีที่ใช้งานได้จริง