この記事の続き
構成
前提
- リバースプロキシを経由してMisskeyインスタンスへアクセスすることが可能
- サーバがamd64環境で動作している(arm64では未検証)
- サーバネットワーク内部から自グローバルIPアドレスに対して通信が通る
NW
内部: 172.16.5.0/24
外部: 10.0.1.9
リバースプロキシ
OS: Ubuntu 22.04 LTS
HTTPServ: apache2
IP: 172.16.5.2
Misskeyサーバ
OS: Ubuntu 22.04 LTS
HTTPServ: Nginx
FQDN: mi.example.net
IP: 172.16.5.3
DNSサーバ: 172.16.5.253
MinIO
OS: Ubuntu 22.04 LTS
FQDN: media.example.net
IP: 172.16.5.4
データ格納場所: /mnt/data/
Misskeyから見るURL: media.example.net/misskey/
内部DNSサーバ
IP: 172.16.5.253
内部からの名前解決を次のように行う.
mi.example.net -> 172.16.5.2
media.example.net -> 172.16.5.2
カスタム絵文字やアイコンで500エラー
- オブジェクトストレージに配置した画像へのアクセスができる(内部外部両方)
- その画像を使用したカスタム絵文字の表示ができない
- アイコン設定が途中で進まなくなる
- /proxy/avatar.webp などから500が返ってくる
原因
内部向けDNSサーバで内部IPアドレスを返却しているため.
ローカルIPアドレスをurlパラメータに設定した場合も同じような挙動を示すため,セキュリティ上のリスクを軽減するためにこのように動作すると考えられる.(文献が得られなかったので真偽不明)
対処法
Misskeyインスタンス側での対応を実施します
内部向けDNSサーバを使用しない
外部のDNSサーバを使用し,自サーバにグローバルIPアドレスからアクセスすることでこれが実現できます
$ sudo vim /etc/resolv.conf
nameserver (プロバイダの提供するDNSサーバ)
Related Posts:
Misskeyのオブジェクトストレージ環境をMinIOで構築する
Misskey 2023.11.1にMeilisearchを導入し,インデックスを作成する
[失敗]Meilisearchの更新(Systemd版)