巨大な単語帳(大量の音声や高画質な画像を含むもの)を同期する際、デフォルトの設定だと「サーバーの容量制限」や「通信のタイムアウト(時間切れ)」に引っかかってエラーになることがよくあります。
これを未然に防ぐための、Apache と Anki同期サーバー 双方のチューニング手順をステップバイステップで解説します。
1. Apache側のチューニング(タイムアウトと容量制限)
Apacheは初期状態だと、通信が長引いた場合や、一定以上の巨大なデータが送られてきた場合に通信を強制切断するようになっています。この制限を大幅に緩和します。
1. 設定ファイルを開く
sudo nano /etc/apache2/sites-available/anki.conf
2. 以下の3つの項目を <VirtualHost *:443> の中に追記・修正します
<VirtualHost *:443>
# ... (既存のSSL設定やProxyPass設定) ...
# ▼ 1. タイムアウト時間を大幅に伸ばす(秒単位。以下は60分)
# 大量のメディア同期は数十分かかることがあるため長めに設定します。
TimeOut 3600
ProxyTimeout 3600
# ▼ 2. 1回のリクエストサイズの制限を引き上げる(バイト単位)
# 例: 500MBを許容する場合 (500 * 1024 * 1024 = 524288000)
# ※ 0 を指定すると無制限になりますが、セキュリティ上 524288000 程度がおすすめです。
LimitRequestBody 524288000
</VirtualHost>
保存してエディタを閉じます。
2. Anki同期サーバー側のチューニング(ペイロード上限)
実は、Ankiの公式同期サーバー(Rustエンジン)側にも、**「1回の同期リクエストで受け付けるデータ量はデフォルトで100MBまで」**という安全装置が組み込まれています。これもApacheに合わせて引き上げておきます。
1. systemdのサービスファイルを開く
sudo nano /etc/systemd/system/anki-sync-server.service
2. 環境変数 MAX_SYNC_PAYLOAD_MEGS を追加する
[Service] セクションの中に以下の1行を追加します。
[Service]
# ... (既存の SYNC_USER1 などの設定) ...
# ▼ 1回の同期データ上限をメガバイト単位で指定(デフォルトの100から500へ)
Environment="MAX_SYNC_PAYLOAD_MEGS=500"
保存してエディタを閉じます。
3. 設定の反映と再起動
変更したApacheとAnkiサーバーの両方の設定をシステムに反映させます。順番に以下のコマンドを実行してください。
# systemdにファイルの変更を再読み込みさせる
sudo systemctl daemon-reload
# Ankiサーバーを再起動して新しい上限を適用
sudo systemctl restart anki-sync-server.service
# Apacheの設定ファイルに文法エラーがないかテスト
sudo apachectl configtest
# (Syntax OK と出たら) Apacheを再起動して適用
sudo systemctl restart apache2
これで、音声や画像がたっぷり詰まった数百MBクラスの単語帳でも、途中で接続が切れることなく安全に同期できるようになります!

コメント