Collabora 온라인 앱 간 복사 및 붙여넣기 오류 수정
키보드 단축키, 브라우저 클립보드 권한, HTTPS, iframe 정책 및 콘텐츠 형식을 테스트하여 Collabora Online에서 로컬 앱으로 복사 및 붙여넣기 기능을 사용할 때 발생하는 문제를 해결하세요.
가장 중요한 규칙은 다음과 같습니다. ONLYOFFICE Document Server를 HAProxy 뒤에 배치하는 것은 단일 백엔드의 경우 간단하지만, 다중 노드 편집기 클러스터의 경우 단순한 라운드 로빈 방식 이상의 조치가 필요합니다. ONLYOFFICE의 최신 API 문서에 따르면 공동 편집 중에 동일한 문서에 대한 요청은 동일한 Document Server 노드에 도달해야 합니다. 최신 통합 환경에서는 shardkey로드 밸런서가 문서 인식 선호도를 위해 사용할 수 있는 쿼리 매개변수를 활용하는 것이 권장됩니다.
문서 서버가 하나만 있고 HTTPS 종료, 안정적인 공용 호스트 이름 또는 중앙 집중식 상태 확인을 위해 HAProxy를 사용하려는 경우 구성이 간단합니다. 문서 서버 노드가 두 개 이상인 경우 동일한 프록시 기본 설정을 사용하되 shardkey일반적인 라운드 로빈 방식만으로는 충분하지 않다고 가정하고 노드 수에 따른 라우팅을 추가하십시오.
아래 예제는 현재 ONLYOFFICE 프록시 문서 , ONLYOFFICE 샤드 키 문서 및 현재 HAProxy WebSocket 지침을 기준으로 검증되었습니다 .
HAProxy는 하나의 공용 URL(예: `/etc/document_server.com`)을 사용하고 https://docs.example.com, 로드 밸런서에서 TLS 연결을 종료하고, 능동적인 상태 점검을 수행하거나, 하나의 엔드포인트 뒤에 여러 Document Server 노드를 연결하려는 경우에 적합한 프런트엔드입니다. 또한 Nextcloud, ownCloud, 사용자 지정 DMS 또는 애플리케이션이 개별 Document Server 노드에 직접 연결해서는 안 되는 경우에도 유용합니다.
이 가이드는 다음 사항을 전제로 합니다.
로드 밸런싱부터 시작하지 마십시오. 먼저 HAProxy 호스트에서 모든 백엔드가 정상인지 확인하십시오. ONLYOFFICE 문서를 /healthcheck편집기 가용성 확인 엔드포인트로 사용합니다. 정상적인 서버는 를 반환합니다 true. 이 검사는 데이터베이스, 메시지 브로커, Redis 연결 및 스토리지와 같은 핵심 종속성을 확인합니다.
curl -sS http://10.0.10.21/healthcheck
curl -sS http://10.0.10.22/healthcheck
예상 결과:
true
true
백엔드 중 하나라도 오류가 발생하면 해당 노드부터 먼저 문제를 해결하십시오. 일반적인 원인으로는 방화벽 규칙, 잘못된 내부 포트, 문서 서버 서비스 실행 안 됨 또는 지원 서비스 사용 불가 등이 있습니다.
ONLYOFFICE는 HTTP 애플리케이션이며 편집 중에 장시간 유지되는 WebSocket 연결을 사용합니다. HAProxy는 HTTP 업그레이드 후 WebSocket 연결을 자동으로 프록시할 수 있지만, 타임아웃 정책은 여전히 중요합니다. HAProxy 자체 문서에서는 timeout tunnel업그레이드된 WebSocket 연결에 대한 권장 값을 제시하고 있습니다.
실질적인 기준은 다음과 같습니다.
global
log /dev/log local0
log /dev/log local1 notice
daemon
maxconn 4096
defaults
log global
mode http
option httplog
option dontlognull
timeout connect 5s
timeout client 60s
timeout server 60s
timeout tunnel 1h
1시간 터널 타임아웃은 예시일 뿐이며, 보편적인 요구 사항은 아닙니다. 조직의 편집 작업 패턴, 보안 정책 및 리소스 제한에 맞는 값을 선택하십시오. 편집자가 매우 규칙적인 간격으로 연결을 끊는 경우, 해당 간격을 HAProxy 및 상위 방화벽 또는 역방향 프록시의 유휴 타임아웃과 비교해 보십시오.
ONLYOFFICE는 프록시 뒤에서 실행될 때 전달된 헤더를 명시적으로 요구합니다. 특히, X-Forwarded-Proto원래 클라이언트가 HTTP를 사용했는지 HTTPS를 사용했는지 여부를 문서 서버에 알려주고, X-Forwarded-Host클라이언트가 요청한 호스트 이름을 유지합니다.
깔끔한 HAProxy 프런트엔드는 다음과 같습니다.
frontend onlyoffice_http
bind *:80
mode http
http-request redirect scheme https code 301
frontend onlyoffice_https
bind *:443 ssl crt /etc/haproxy/certs/docs.example.com.pem
mode http
option httplog
http-request set-header X-Forwarded-Proto https
http-request set-header X-Forwarded-Host %[req.hdr(Host)]
default_backend onlyoffice_docs
Upgrade최신 HAProxy HTTP 모드에서는 일반적으로 NGINX 스타일 의 헤더 규칙을 수동으로 다시 생성할 필요가 없습니다 Connection. HAProxy는 HTTP에서 WebSocket으로의 업그레이드를 인식하고 연결을 터널 모드로 전환합니다. 중요한 것은 업그레이드 요청을 제거하거나 방해하는 규칙을 삽입하지 않는 것입니다.
클라이언트 IP 주소를 확인하려면 option forwardfor백엔드에 해당 기능을 추가하세요. 그러면 X-Forwarded-For클라이언트 소스 주소에서 헤더가 생성됩니다.
HAProxy가 문서 서버 하나를 앞에 두고 사용하는 경우 백엔드는 간단하게 구성할 수 있습니다.
backend onlyoffice_docs
mode http
option forwardfor
option httpchk GET /healthcheck
http-check expect status 200
timeout tunnel 1h
server ds1 10.0.10.21:80 check
이 설계에서 HAProxy는 주로 리버스 프록시, TLS 엔드포인트 및 상태 게이트 역할을 합니다.
실제 멀티 노드 배포 환경에서는 공동 편집에 일반적인 라운드 로빈 방식에 의존하지 마십시오. ONLYOFFICE의 최신 문서에 따르면 동일한 문서에 대한 모든 요청은 동일한 서버에 도달해야 합니다. 브라우저에서 서버로 전송되는 편집기 요청에는 자동으로 샤드 키가 포함되며, 애플리케이션은 ?shardkey=<document-key>명령, 변환 및 문서 빌더 요청에도 관련 문서에 명시된 대로 샤드 키를 추가해야 합니다.
HAProxy는 URL 쿼리 매개변수에 대한 해싱을 지원하므로 표준 ONLYOFFICE Docs API에 적합한 백엔드는 다음과 같습니다.
backend onlyoffice_docs
mode http
option forwardfor
option httpchk GET /healthcheck
http-check expect status 200
timeout tunnel 1h
balance url_param shardkey
server ds1 10.0.10.21:80 check
server ds2 10.0.10.22:80 check
shardkey표준 Docs API에는 일반적인 라운드 로빈 방식 대신 노드 기반 라우팅을 사용하십시오.HAProxy의 url_param알고리즘은 선택된 쿼리 문자열 매개변수를 해싱합니다. 해당 매개변수가 없으면 HAProxy는 일반적인 로드 밸런싱 동작으로 돌아갑니다. 따라서 ONLYOFFICE에서 권장하는 경우 통합 시 요청에 샤드 키를 전송하는 것이 특히 중요합니다.
WOPI는 다릅니다. ONLYOFFICE에 따르면 WOPI 통합은 WOPISrc동일한 라우팅 목적으로 쿼리 매개변수를 사용합니다. 따라서 해당 balance url_param shardkey라인을 변경 없이 WOPI 설계에 복사하여 필요한 어피니티를 제공한다고 가정해서는 안 됩니다.
서비스를 다시 로드하기 전에 구성을 검증하십시오.
sudo haproxy -c -f /etc/haproxy/haproxy.cfg
구문 유효성 검사가 성공한 후에만 새로 고침하세요.
sudo systemctl reload haproxy
sudo systemctl status haproxy
사용하는 배포판에서 다른 서비스 관리자 또는 구성 경로를 사용하는 경우 해당 명령을 적절히 수정하십시오. HAProxy 패키지가 정상적인 구성 재로드를 지원하는 경우 불필요한 강제 재시작보다는 재로드가 더 바람직합니다.
이제 사용자와 문서 관리 플랫폼이 실제로 어떤 결과를 가져올지 테스트해 보세요.
curl -sS https://docs.example.com/healthcheck
예상되는 신체 부위는 다음과 같습니다:
true
다음으로 TLS 인증서를 확인하십시오.
openssl s_client -connect docs.example.com:443 -servername docs.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates
마지막으로 통합 애플리케이션을 통해 실제 문서를 열어보세요. 상태 점검은 문서 서버 엔드포인트가 준비되었는지 여부만 확인할 뿐, 콜백 URL, JWT 구성, 문서 다운로드, 저장 콜백 또는 다중 노드 선호도 설정이 모두 올바른지 여부는 보장하지 않습니다.
| 징후 | 검사할 가능성이 높은 층 | 유용한 행동 |
|---|---|---|
대중은 /healthcheck실패한다 | HAProxy 라우팅, TLS 또는 백엔드 상태 | 각 백엔드를 직접 테스트한 다음 HAProxy 상태 및 로그를 검사하십시오. |
| 편집기 프레임이 로드된 후 연결이 끊어집니다. | WebSocket 경로 또는 유휴 시간 초과 | timeout tunnel브라우저와 HAProxy 사이에 방화벽이나 프록시가 있는지 확인하십시오 . |
| 생성된 URL은 HTTPS 대신 HTTP를 사용합니다. | 전달된 헤더 | 확인 X-Forwarded-Proto: https하고 검증하세요 X-Forwarded-Host. |
| 다중 노드 편집 기능이 일관성 없이 작동합니다. | 문서 친화성 | shardkey해당 파일이 존재하고 HAProxy가 일관되게 해싱하는지 확인하십시오 . |
| 건강 진단은 성공했지만 저장이 실패했습니다. | 통합 콜백/네트워크 경로 | 문서 서버가 스토리지 애플리케이션의 콜백 및 문서 URL에 접근할 수 있는지 확인하십시오. |
| 일부 노드는 반복적으로 회전을 멈춥니다. | 백엔드 종속성 또는 상태 확인 | 해당 노드에 직접 쿼리를 /healthcheck실행하고 문서 서버 로그를 검사하십시오. |
ONLYOFFICE에서는 기존의 소스 IP 고정 방식이 최적의 기본 설정이 아닙니다. 동일한 파일을 편집하는 여러 사용자가 각기 다른 클라이언트 IP 주소를 가질 수 있고, 한 사용자가 서로 다른 노드에 있을 필요가 없는 여러 문서를 열 수도 있기 때문입니다. ONLYOFFICE의 샤드 키를 기반으로 하는 문서 인식 선호 방식은 라우팅 키가 사용자의 네트워크 주소가 아닌 편집 중인 문서를 나타내므로 더욱 정확합니다.
이러한 차이점은 간단한 쿠키 기반 스티키 세션이 ONLYOFFICE에서 문서화한 라우팅 동작을 대체할 수 없는 이유를 설명합니다. 다중 노드 Docs API 배포를 구축할 때는 애플리케이션에서 문서화된 샤드 키를 사용하십시오.
true상태 를 반환합니다./healthcheckX-Forwarded-Proto그리고 X-Forwarded-Host올바르게 전달됩니다.shardkey일반적인 라운드 로빈 방식이 아닌 노드 기반 선호도를 사용합니다.WOPISrc.문서 서버가 하나인 경우, HAProxy는 주로 깔끔한 리버스 프록시 및 TLS 계층 역할을 합니다. 하지만 문서 서버 노드가 여러 개인 경우에는 문서 인식 라우팅이 결정적인 차이점입니다. 따라서 먼저 이러한 요구 사항을 중심으로 프록시를 구축한 다음, 상태 확인, HTTPS 및 타임아웃 설정을 추가해야 합니다.
키보드 단축키, 브라우저 클립보드 권한, HTTPS, iframe 정책 및 콘텐츠 형식을 테스트하여 Collabora Online에서 로컬 앱으로 복사 및 붙여넣기 기능을 사용할 때 발생하는 문제를 해결하세요.
Linux에서 ONLYOFFICE 데스크톱 편집기의 흐릿한 텍스트 문제를 해결하려면 디스플레이 배율, 앱 인터페이스 배율, 글꼴 사용 가능 여부 및 렌더링 범위를 안전한 순서로 확인하십시오.
ONLYOFFICE Workspace, DocSpace 또는 Docs 통합에서 인쇄 및 다운로드를 차단하는 방법과 각 공유 방식에 적용되는 제어 기능을 확인하는 방법을 알아보세요.
Nginx 환경에서 실행되는 ONLYOFFICE Document Server의 502 오류를 해결합니다. 서비스 상태, 로그, 업스트림 포트, 전달된 헤더, WebSocket 및 Docker 네트워킹을 점검하십시오.
ONLYOFFICE 문서가 자체 호스팅 서버에 대한 시간 초과 오류를 해결하려면 올바른 포털 또는 WebDAV URL, 네트워크 액세스, HTTPS, 자격 증명 및 서버 라우팅을 확인하십시오.
LibreOffice Writer에서 사용자 지정 템플릿을 기본값으로 설정하고, 업데이트하거나 초기화한 다음, 새 문서가 원하는 스타일과 페이지 레이아웃을 사용하는지 확인합니다.
ONLYOFFICE PDF 내보내기 실패 문제를 해결하려면 변환, 브라우저 다운로드 및 서버 문제를 각각 분리한 다음 저장된 PDF가 제대로 열리고 레이아웃이 유지되는지 확인하십시오.
Linux에서 ONLYOFFICE Document Server를 안전하게 제거하십시오. 패키지, Docker, Snap 및 Kubernetes 단계를 따라 데이터를 보존하고 남아 있는 서비스가 있는지 확인하십시오.
ONLYOFFICE Workspace에서 LDAP 또는 Active Directory 동기화를 구성하려면 보안 연결 설정, 사용자 및 그룹 필터, 속성 매핑, 관리자 권한, 예약된 동기화 및 실제 검증 검사를 설정하십시오.
ONLYOFFICE Document Server를 HAProxy 뒤에 배치하고, TLS 종료, 전달 헤더, 상태 확인, WebSocket 안전 시간 초과 및 문서 인식 라우팅을 사용하여 다중 노드 배포를 구성하십시오.