เรียกใช้งาน Collabora CODE เบื้องหลัง Nginx พร้อมการยุติการเชื่อมต่อ TLS

เอกสารอาจค้างหลังจากที่คุณตั้งค่า Collabora CODE ให้อยู่หลัง HTTPS เนื่องจากพร็อกซีและ CODE ไม่เห็นด้วยเกี่ยวกับจุดสิ้นสุดของ TLS หรือพร็อกซีอาจบล็อกการรับส่งข้อมูล WebSocket กำหนดค่า Nginx ให้แสดงใบรับรองสาธารณะ ส่งต่อไปยังตัวรับฟัง CODE ส่วนตัว และส่งผ่านเส้นทาง WebSocket การตั้งค่า CODE คือssl.enable=falseและssl.termination=true

ตัวอย่างนี้ใช้ Nginx บนโฮสต์ Docker หากต้องการใช้พร็อกซีในคอนเทนเนอร์อื่น ให้ใช้เครือข่ายส่วนตัวของ Docker แทน ดูการตั้งค่าพร็อกซี ของ Collabora และคู่มืออิมเมจ Docker ของ CODEสำหรับตัวเลือกเฉพาะเวอร์ชัน

ทำความเข้าใจเกี่ยวกับการเปลี่ยนแปลงการยุติ SSL

การยุติการเชื่อมต่อ TLS หมายความว่า Nginx จะจัดการการเชื่อมต่อ HTTPS และใบรับรองของเบราว์เซอร์ ในขณะที่ CODE ใช้ HTTP บนพอร์ต 9980 อยู่เบื้องหลัง ควรเก็บ Listener นั้นไว้เป็นส่วนตัว: ผูกมันเข้ากับ Loopback บนโฮสต์เดียว หรือใช้เครือข่าย Docker ส่วนตัว หากการรับส่งข้อมูลจากพร็อกซีไปยัง CODE ผ่านเครือข่ายที่ไม่น่าเชื่อถือ ควรปกป้องลิงก์นั้นด้วย TLS หรือ Tunnel

แผนภาพเครือข่ายแสดงให้เห็นว่า HTTPS ของเบราว์เซอร์สิ้นสุดที่ Nginx ก่อนที่ HTTP ส่วนตัวจะเข้าถึงคอนเทนเนอร์ Collabora CODE บน 127.0.0.1 พอร์ต 9980
เบราว์เซอร์ใช้ HTTPS ในการเชื่อมต่อกับ Nginx ส่วน HTTP นั้นจำกัดอยู่เฉพาะการเชื่อมต่อส่วนตัวระหว่างพร็อกซีกับ CODE เท่านั้น

เตรียมภาชนะและใบรับรองให้พร้อม

  1. เลือกชื่อโฮสต์สาธารณะสร้างระเบียน DNS ที่office.example.comชี้ไปยังพร็อกซี Nginx ขอรับใบรับรองสำหรับชื่อโฮสต์นั้น และติดตั้งห่วงโซ่ใบรับรองและคีย์ส่วนตัวบนพร็อกซี
  2. รักษาพอร์ตของ CODE ให้เป็นส่วนตัวสำหรับ Nginx ที่ติดตั้งโดยตรงบนโฮสต์ Docker ให้เผยแพร่พอร์ตของคอนเทนเนอร์เฉพาะบน loopback เท่านั้น ใน Compose การแมปที่เกี่ยวข้องคือ127.0.0.1:9980:9980อย่าเผยแพร่9980:9980บนทุกอินเทอร์เฟซของโฮสต์ เว้นแต่ไฟร์วอลล์และการออกแบบเครือข่ายจะจำกัดไว้อย่างชัดเจน
  3. ตั้งค่าโหมด TLS ของ CODEในบริการ Compose ให้เพิ่มตัวเลือกทั้งสองลงในการกำหนดค่า CODE ตัวอย่างด้านล่างใช้ตัวแปรภาพเพื่อให้คุณสามารถตรึงแท็กที่คุณตรวจสอบและทดสอบได้อย่างแม่นยำ
โปรแกรมแก้ไข Docker Compose แสดงพอร์ตบริการ Collabora ที่ผูกกับ 127.0.0.1 บนพอร์ต 9980
การผูกกับ 127.0.0.1 ทำให้สามารถเข้าถึงตัวรับฟัง CODE ได้เฉพาะจากโฮสต์ Docker เท่านั้น
การตั้งค่าสภาพแวดล้อม Docker Compose ด้วย ssl.enable=false และ ssl.termination=true สำหรับ Collabora CODE
ตัวเลือกเหล่านี้บอกให้ CODE ทราบว่า TLS ถูกจัดการโดยพร็อกซีแบบย้อนกลับ
services:
  collabora:
    image: ${COLLABORA_CODE_IMAGE}
    restart: unless-stopped
    ports:
      - "127.0.0.1:9980:9980"
    environment:
      extra_params: "--o:ssl.enable=false --o:ssl.termination=true"

ตั้งCOLLABORA_CODE_IMAGEค่าแท็กรูปภาพที่ผ่านการทดสอบและตรึงไว้แล้ว คงค่าการอนุญาตโฮสต์ WOPI และการตั้งค่าการตรวจสอบสิทธิ์ของคุณไว้ การยุติ TLS ไม่ได้มาแทนที่การตั้งค่าเหล่านั้น หาก Nginx เป็นบริการ Docker อื่น ให้ละเว้นการแมปพอร์ตโฮสต์และพร็อกซีไปยังhttp://collabora:9980เครือข่ายส่วนตัวที่ใช้ร่วมกัน

กำหนดค่า Nginx ให้ยุติการเชื่อมต่อ TLS และส่งต่อทราฟฟิก CODE

  1. เพิ่มโฮสต์เสมือน HTTPSใส่ตำแหน่งที่ตั้งต่อไปนี้ลงในบล็อกเซิร์ฟเวอร์ Nginx สำหรับชื่อโฮสต์สาธารณะของ Collabora แทนที่ชื่อโฮสต์และเส้นทางใบรับรองในตัวอย่าง การกำหนดค่านี้ใช้สำหรับ URL ระดับรากของ Collabora ไม่ใช่ URL ที่ติดตั้งอยู่ภายใต้เส้นทางเช่น/office/.
ตัวอย่างการตั้งค่า Nginx พร้อมตัวรับฟัง TLS, ชื่อเซิร์ฟเวอร์ office.example.com และเส้นทางไฟล์ใบรับรอง
Nginx ถือใบรับรองสาธารณะและรับฟังการเชื่อมต่อ HTTPS สำหรับชื่อโฮสต์ของ Collabora
server {
    listen 443 ssl;
    server_name office.example.com;
    ssl_certificate /etc/letsencrypt/live/office.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/office.example.com/privkey.pem;

    location ^~ /browser {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/discovery {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
    location ^~ /hosting/capabilities {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

    location ~ ^/cool/(.*)/ws$ {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ^~ /cool/adminws {
        proxy_pass http://127.0.0.1:9980;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 36000s;
    }
    location ~ ^/(c|l)ool {
        proxy_pass http://127.0.0.1:9980;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

ส่งต่อเส้นทางสำหรับไฟล์ตัวแก้ไข การค้นหา และความสามารถต่างๆ ตำแหน่งเหล่านี้/cool/.../wsจำเป็น ต้องมีส่วนหัว HTTP/1.1 และ Upgrade เพื่อให้ Nginx สามารถส่งผ่าน WebSockets ได้ การตั้งค่าหมดเวลาอ่านนานจะช่วยให้เซสชันการแก้ไขเปิดอยู่ตลอดเวลา ดู เอกสารประกอบเกี่ยวกับการพร็อกซี WebSocketของ/cool/adminwsNginx

Nginx จะบล็อกการส่งต่อเส้นทางการค้นหาเบราว์เซอร์และโฮสติ้งไปยังตัวรับฟัง CODE ส่วนตัว
ส่งต่อข้อมูลสินทรัพย์ของตัวแก้ไข การค้นหา WOPI และเอนด์พอยต์ความสามารถไปยังตัวรับฟัง CODE ตัวเดียวกัน
ตำแหน่ง WebSocket ของ Nginx สำหรับเส้นทางที่ยอดเยี่ยมพร้อม HTTP 1.1, ส่วนหัว Upgrade และ Connection และการหมดเวลาอ่านที่ยาวนาน
เส้นทาง WebSocket หลักต้องการ HTTP/1.1 และส่วนหัว Upgrade มิฉะนั้นโปรแกรมแก้ไขอาจโหลดไม่สามารถใช้งานได้
การตั้งค่า Nginx สำหรับ WebSocket ของผู้ดูแลระบบสุดเจ๋ง และเส้นทางการร้องขอ Collabora สุดเท่หรือสุดเจ๋ง
ส่งต่อการเชื่อมต่อ WebSocket สำหรับการจัดการ และเส้นทางการถ่ายโอนเอกสารที่เหลือทั้งหมดด้วยเช่นกัน

ทำการเปลี่ยนแปลงและตรวจสอบพฤติกรรมที่เกี่ยวข้องกับเวอร์ชัน

  1. ตรวจสอบความถูกต้องของ Nginx ก่อนทำการรีโหลด เรียกใช้คำสั่ง ` npm run src` nginx -tดำเนินการต่อเฉพาะเมื่อ Nginx แจ้งว่าการทดสอบการกำหนดค่าสำเร็จ จากนั้นจึงทำการรีโหลด Nginx ด้วยคำสั่งบริการปกติของระบบของคุณ
  2. สร้างคอนเทนเนอร์ CODE ขึ้นใหม่ใช้การเปลี่ยนแปลง Compose ด้วยคำสั่ง `git docker compose up -d collaboralogs` ตรวจสอบบันทึกของคอนเทนเนอร์เพื่อหาข้อผิดพลาดในการเริ่มต้น และยืนยันว่าการกำหนดค่าที่ใช้งานอยู่มีตัวเลือก SSL ทั้งสองแบบ
หน้าต่างเทอร์มินัลพร้อมคำสั่ง nginx -t ที่พร้อมสำหรับการตรวจสอบความถูกต้องของการตั้งค่ารีเวิร์สพร็อกซี
เรียกใช้การทดสอบไวยากรณ์ก่อนโหลดหน้าเว็บใหม่ เพื่อป้องกันไม่ให้บล็อกเซิร์ฟเวอร์ที่มีรูปแบบไม่ถูกต้องไปรบกวนเว็บไซต์อื่น

สำหรับข้อมูลอ้างอิงเวอร์ชันนั้น ที่เก็บข้อมูลของ Collabora บันทึกรายงานเมื่อวันที่ 22 กรกฎาคม 2026 ว่าการcoolwsd --probeตรวจสอบสถานะสุขภาพในตัวของ CODE เวอร์ชัน 26.04.2.2 และเวอร์ชันที่ใหม่กว่า สามารถตรวจสอบ HTTPS บนพอร์ต 9980 ได้ แม้ว่า TLS จะสิ้นสุดที่พร็อกซีก็ตาม ซึ่งอาจทำให้คอนเทนเนอร์ถูกระบุว่าไม่สมบูรณ์ในขณะที่ปลายทางสาธารณะตอบสนองได้ โปรดตรวจสอบบันทึกปัญหาสำหรับแท็กรูปภาพของคุณทดสอบปลายทางสาธารณะและเซสชันการแก้ไขก่อนที่จะถือว่าสถานะสุขภาพเพียงอย่างเดียวเป็นหลักฐานของความล้มเหลวของ TLS โปรดคงการตรวจสอบสถานะสุขภาพไว้จนกว่าจะมีตัวตรวจสอบอื่นมาแทนที่

ตรวจสอบการค้นพบ HTTPS และเซสชันการแก้ไขจริง

ส่งคำขอhttps://office.example.com/hosting/discoveryผ่านเบราว์เซอร์หรือด้วยcurl. ควรส่งคืน XML การค้นหา WOPI ผ่าน HTTPS โดยใช้ URL ที่ใช้ชื่อโฮสต์ HTTPS สาธารณะ คำเตือนเกี่ยวกับใบรับรองบ่งชี้ว่ามีปัญหาเกี่ยวกับชื่อโฮสต์หรือใบรับรอง URL HTTP บ่งชี้ว่าโหมด TLS หรือรูปแบบการส่งต่อไม่ตรงกัน ข้อผิดพลาด 502 บ่งชี้ว่าพร็อกซีไม่สามารถเข้าถึง CODE ได้

ถัดไป เปิดเอกสารทดสอบจากโฮสต์ WOPI ที่เชื่อมต่ออยู่ และตรวจสอบว่าการแก้ไขใช้งานได้ ในเครื่องมือสำหรับนักพัฒนาของเบราว์เซอร์/cool/.../wsคำขอควรสร้างการเชื่อมต่อ WebSocket หากการค้นหาใช้งานได้ แต่การแก้ไขค้าง ให้ตรวจสอบตำแหน่งและส่วนหัวของ WebSocket ยืนยันว่าการรวมระบบอนุญาตให้โฮสต์ WOPI และชี้ไปยังhttps://office.example.com.

การตั้งค่าสำเร็จ:ใบรับรองได้รับการเชื่อถือ การค้นหาใช้ HTTPS พอร์ต 9980 ยังคงเป็นส่วนตัว และเอกสารทดสอบสามารถเปิดและแก้ไขผ่าน WebSocket ได้

ฝากความเห็น

เรียกใช้งาน Collabora CODE เบื้องหลัง Nginx พร้อมการยุติการเชื่อมต่อ TLS

เรียกใช้งาน Collabora CODE เบื้องหลัง Nginx พร้อมการยุติการเชื่อมต่อ TLS

กำหนดให้ Nginx ดูแล HTTPS สำหรับคอนเทนเนอร์ Collabora CODE ส่งต่อการแก้ไข WebSockets อย่างถูกต้อง และตรวจสอบปลายทางสาธารณะโดยไม่ต้องเปิดพอร์ต 9980

แสดงข้อความเมื่อแป้นพิมพ์ Collabora Mobile เปิดขึ้น

แสดงข้อความเมื่อแป้นพิมพ์ Collabora Mobile เปิดขึ้น

แก้ไขปัญหาแป้นพิมพ์ในเบราว์เซอร์บนมือถือที่บังข้อความใน Collabora Online พร้อมวิธีแก้ปัญหาอย่างรวดเร็วและการตรวจสอบแยกต่างหากสำหรับเบราว์เซอร์, WebView ที่ฝังอยู่ และหน้าเว็บหลัก

หยุดการพิมพ์และการดาวน์โหลดที่ไม่ต้องการใน ONLYOFFICE

หยุดการพิมพ์และการดาวน์โหลดที่ไม่ต้องการใน ONLYOFFICE

ตั้งค่าขีดจำกัดการพิมพ์และการดาวน์โหลดสำหรับลิงก์ ONLYOFFICE สมาชิกห้อง หรือเซสชัน Docs API จากนั้นตรวจสอบข้อจำกัดจากบัญชีผู้รับ

กำหนดเวลาสำรองข้อมูลที่เชื่อถือได้สำหรับ ONLYOFFICE Workspace

กำหนดเวลาสำรองข้อมูลที่เชื่อถือได้สำหรับ ONLYOFFICE Workspace

ตั้งค่าปลายทางสำรองข้อมูล กำหนดเวลา ครอบคลุมอีเมล และระยะเวลาการเก็บรักษาใน ONLYOFFICE Workspace จากนั้นตรวจสอบว่าไฟล์เก็บถาวรพร้อมสำหรับการกู้คืนแล้ว

ติดตั้ง ONLYOFFICE Docs Enterprise พร้อมไฟล์เขียนเอกสารอย่างเป็นทางการ

ติดตั้ง ONLYOFFICE Docs Enterprise พร้อมไฟล์เขียนเอกสารอย่างเป็นทางการ

เริ่มต้นใช้งาน Enterprise Docker Compose stack บันทึกใบอนุญาตและข้อมูลต่างๆ กำหนดค่า JWT อย่างปลอดภัย และตรวจสอบว่าโปรแกรมแก้ไขพร้อมสำหรับการผสานรวมแล้ว

ทำความสะอาดข้อความในสเปรดชีตด้วยมาโคร ONLYOFFICE ที่สามารถนำกลับมาใช้ใหม่ได้

ทำความสะอาดข้อความในสเปรดชีตด้วยมาโคร ONLYOFFICE ที่สามารถนำกลับมาใช้ใหม่ได้

ใช้มาโคร JavaScript ของ ONLYOFFICE เพื่อลบอักขระที่ไม่สามารถพิมพ์ได้และตัดช่องว่างส่วนเกินออกจากช่วงข้อมูลที่กำหนดในสเปรดชีต พร้อมขั้นตอนการตรวจสอบที่ปลอดภัย

เปลี่ยนตำแหน่งจัดเก็บข้อมูลเริ่มต้นของ ONLYOFFICE Workspace

เปลี่ยนตำแหน่งจัดเก็บข้อมูลเริ่มต้นของ ONLYOFFICE Workspace

ย้ายข้อมูลพอร์ทัลจากดิสก์เริ่มต้นไปยังผู้ให้บริการพื้นที่จัดเก็บข้อมูลบนคลาวด์ที่รองรับ หรือย้ายข้อมูล Docker อย่างปลอดภัยโดยการเปลี่ยนการแมปวอลุ่มโฮสต์

ลบ ONLYOFFICE Document Server ออกจาก Linux อย่างสมบูรณ์

ลบ ONLYOFFICE Document Server ออกจาก Linux อย่างสมบูรณ์

ตรวจสอบว่า Document Server ใช้แพ็กเกจ Linux หรือ Docker ลบเฉพาะส่วนประกอบของมัน และตรวจสอบข้อมูลที่เหลืออยู่โดยไม่ลบบริการที่ใช้ร่วมกันโดยไม่ได้ตั้งใจ

แก้ปัญหาความล่าช้าในการแก้ไขร่วมของ ONLYOFFICE ด้วยการค้นหาจุดที่เป็นปัญหา

แก้ปัญหาความล่าช้าในการแก้ไขร่วมของ ONLYOFFICE ด้วยการค้นหาจุดที่เป็นปัญหา

ตรวจสอบหาสาเหตุของการแก้ไขเอกสารร่วมกันที่ช้า เช่น แรงกดดันด้านทรัพยากรของ Docker การเชื่อมต่อพร็อกซี หรือการโหลดเอกสาร จากนั้นเลือกวิธีแก้ไขที่ตรงกับผลการวิเคราะห์ของคุณ

ตั้งค่า HTTPS สำหรับ ONLYOFFICE Docs ใน Docker

ตั้งค่า HTTPS สำหรับ ONLYOFFICE Docs ใน Docker

เลือกตำแหน่งที่ TLS ควรสิ้นสุดการเชื่อมต่อ ติดตั้งใบรับรองที่เชื่อถือได้และคีย์ส่วนตัวอย่างปลอดภัย และตรวจสอบการเข้าถึง HTTPS ไปยังเซิร์ฟเวอร์ ONLYOFFICE Docs ที่ทำงานบน Docker