Collabora Online のローカルアプリ間でのコピー&ペーストを修正する
Collabora Online のコピー&ペーストとローカルアプリとの連携に関するトラブルシューティングは、キーボードショートカット、ブラウザのクリップボード権限、HTTPS、iframe ポリシー、コンテンツ形式などをテストすることで行います。
最も重要なルールは次のとおりです。単一のバックエンドであれば、ONLYOFFICE Document ServerをHAProxyの背後に配置するのは簡単ですが、マルチノードのエディタークラスタでは、単純なラウンドロビン以上のものが必要です。ONLYOFFICEの現在のAPIドキュメントには、共同編集中に同じドキュメントへのリクエストは同じDocument Serverノードに到達しなければならないと記載されています。最新の統合では、shardkeyロードバランサーがドキュメント認識アフィニティに使用できるクエリパラメータが推奨されるメカニズムです。
ドキュメントサーバーが1台のみで、HTTPS終端、安定したパブリックホスト名、または集中型ヘルスチェックにHAProxyを使用したい場合は、設定は簡単です。ドキュメントサーバーノードが2台以上ある場合は、プロキシの基本原理は同じですが、shardkey通常のラウンドロビンで十分だと想定するのではなく、ルーティングを追加する必要があります。
以下の例は、最新のONLYOFFICE プロキシのドキュメント、ONLYOFFICE シャードキーのドキュメント、および最新のHAProxy WebSocket ガイダンスと照らし合わせて検証されています。
HAProxy は、単一のパブリック URL (例: ) を使用したい場合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 tunnelWebSocket接続に推奨される値が記載されています。
実用的な基準値は以下のとおりです。
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が1つのドキュメントサーバーの前面に配置されている場合、バックエンドはシンプルに構成できます。
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アドレスを持つ可能性があり、また、1人のユーザーが同じノード上に存在する必要のない複数のドキュメントを開くこともあります。ONLYOFFICEのシャードキーに基づくドキュメント認識型アフィニティは、ルーティングキーがユーザーのネットワークアドレスではなく編集中のドキュメントを表すため、より正確です。
同様の区別は、単純なクッキーベースのスティッキーセッションをONLYOFFICEで説明されているルーティング動作の代替として扱うべきではない理由を説明しています。マルチノードのDocs APIデプロイメントを構築する場合は、アプリケーションで説明されているシャードキーを使用してください。
true状態に戻ります。/healthcheckX-Forwarded-ProtoそしてX-Forwarded-Host正しく転送されます。shardkey、単純なラウンドロビン方式だけでなく、アフィニティベースの方式を使用します。WOPISrc。ドキュメントサーバーが1台の場合、HAProxyは主にクリーンなリバースプロキシおよびTLSレイヤーとして機能します。複数のドキュメントサーバーノードを使用する場合、決定的な違いはドキュメント認識ルーティングです。まずこの要件に基づいてプロキシを構築し、その後、ヘルスチェック、HTTPS、タイムアウト調整などを追加してください。
Collabora Online のコピー&ペーストとローカルアプリとの連携に関するトラブルシューティングは、キーボードショートカット、ブラウザのクリップボード権限、HTTPS、iframe ポリシー、コンテンツ形式などをテストすることで行います。
Linux 版 ONLYOFFICE デスクトップエディタでテキストがぼやける問題を解決するには、ディスプレイのスケーリング、アプリのインターフェースのスケーリング、フォントの利用可能性、レンダリング範囲を安全な順序で確認してください。
ONLYOFFICE Workspace、DocSpace、またはDocsとの連携において、印刷とダウンロードをブロックする方法を学び、各共有方法に適用される制御機能を確認してください。
Nginxの背後で発生するONLYOFFICEドキュメントサーバーの502エラーのトラブルシューティングを行います。サービスの状態、ログ、アップストリームポート、転送ヘッダー、WebSocket、およびDockerネットワークを確認します。
ONLYOFFICE Documentsがセルフホスト型サーバーでタイムアウトする問題を解決するには、適切なポータルまたはWebDAV URL、ネットワークアクセス、HTTPS、認証情報、およびサーバールーティングを確認してください。
カスタムのLibreOffice Writerテンプレートをデフォルトとして設定し、更新またはリセットして、新しいドキュメントが設定したスタイルとページレイアウトを使用していることを確認してください。
ONLYOFFICEのPDFエクスポートの失敗をトラブルシューティングするには、変換、ブラウザのダウンロード、サーバーの問題を切り分け、保存されたPDFが開いてレイアウトが保持されることを確認してください。
ONLYOFFICE Document ServerをLinuxから安全に削除します。パッケージ、Docker、Snap、Kubernetesの手順に従い、データを保持し、残存サービスを確認してください。
ONLYOFFICE Workspaceで、安全な接続設定、ユーザーおよびグループフィルタ、属性マッピング、管理者権限、スケジュール同期、および実用的な検証チェックを使用して、LDAPまたはActive Directory同期を構成します。
ONLYOFFICE Document ServerをHAProxyの背後に配置し、TLS終端、転送ヘッダー、ヘルスチェック、WebSocketセーフタイムアウト、およびドキュメント認識ルーティングを使用して、マルチノード展開を実現します。