セルフホストのブログがあり、Mastodonインスタンスを設定する予定がある場合、またはすでに設定している場合は、ドメイン名を選択するという問題に直面する必要があります。ブログがexample.com
であるとすると、Mastodonアカウントは[email protected]
または[email protected]
のどちらにする必要がありますか?
シンプルさと分かりやすさのためには、当然ながらブログとマストドンのドメイン名を同じにした方が良いでしょう。 しかし、Mastodonは第2階層のディレクトリの下では動作しません。 Mastodonのウェブ部分をリバースエンジニアリングによって第二階層のドメインやディレクトリに移動させたとしても、分散型サービスである本サービスは、連邦宇宙の他のインスタンスノードとデータを交換する際に未知の問題が発生する可能性が高い。
幸い、フェデレーションノード間の通信における重要なステップは、 https://example.com/.well-known/host-meta
にアクセスすることです。このファイルのコンテンツには、次のステップのURLが含まれています。また、Mastodonは LOCAL_DOMAIN
および WEB_DOMAIN
オプションもサポートしています。
マストドンを設定する
.env.production
を編集し、次の変更を加えます。
- 変更しないでください
LOCAL_DOMAIN
; - WEB_DOMAIN構成を追加し、
mastodon.example.com
などのセカンドレベルドメイン名に設定します。
設定 mastodon.example.com
mastodon.example.com
のNginxホストを構成するには、Mastodonのドキュメントを参照してください。 Mastodonのstreaming/sidekiq/webサービスを再起動し、nginx構成をリロードすると、mastodon.example.com
にアクセスできるようになります。
example.comを設定する
ただし、外部インスタンスがアカウント[email protected]
に接続しようとすると、アドレスがmastodon.example.comであることがわからないため、 https://example.com/.well-known/host-meta
は、 https://mastodon.example.com/.well-known/host-meta
のコンテンツを返すことができます。
しかし、あなたのアカウントに接続しようとする外部インスタンス [email protected]
は、あなたのウェブアドレスが mastodon.example.com であることをまだ知りません。 known/host-metaはhttps://mastodon.example.com/.well-known/host-meta
を返します。
example.com
のNginx構成で、Mastodonの構成を削除し、次のルールのみを追加します
location = /.well-known/host-meta {
return 301 https://mastodon.example.com$request_uri;
}
Nginxをリロードするだけです
その他の構成
上記の構成は、felxの補足ドキュメントMastodonとそれが提供するユーザーに異なるドメイン名を使用するからのものです。記事で述べたように、メインドメイン名ジャンプとWEB_DOMAIN構成は要件を満たすことができますが、インスタンスバージョンとクライアントの種類が異なるため、依然として奇妙な問題が発生することは避けられません。
また、しばらく実行されているMastodonのプライマリドメイン名からセカンダリドメイン名に切り替えると、より明白な問題が発生する可能性があります。
公式ドキュメントと経験のルートの章によると、互換性を高めるためにexample.comに次のルールを設定することをお勧めします。
## mastodon web url
location ~ ^/(about/more|settings|web|pghero|sidekiq|admin|interact|explore|public|@.<em>|relationships|filters|terms|inert.css){
rewrite ^(.</em>) https://$mastodon_host$1 permanent.
}
## mastodon .well-known
location ~ ^/(.well-known/(host-meta|nodeinfo|webfinger|change-password|keybase-proof-config)|nodeinfo) {
rewrite ^(.*) https://$mastodon_host$1 permanent.
}
## mastodonのシステムリソース
location ~ ^/(system|headers|avatars) {
## set your mastodon public folder, or just redirect to $mastodon_host
#rewrite ^(.*) https://$mastodon_host$1 permanent;
root /home/mastodon/live/public;
}
## mastodonのURL (使用可能な post)
location ~ ^/(api/v1|inbox|actor|oauth|auth|users){
return 308 https://$mastodon_host$request_uri;
}
さあ、[email protected]
でおしゃべりしましょう。
Webmention
コメントフォーム
可以请教一下,按照最后的 nginx 写法,安卓客户端登录似乎有些问题,只能以local_domain 登录您那边有这种情况吗?查看 nginx 日志,似乎返回308重定向后客户端会判断为错误,不会发起连接。
我已经不再使用自建 Mastodon 了。当时的确存在这种情况,部分客户端只能以
local_domain
登录。看来,这么多年了,那些客户端还没有修正对 308 的处理。试试把 Mastodon 实例的 nginx.conf 中的 @proxy 配置复制过来,改一改吧写了教程也看不懂系列,tql
哈哈,这是第二步了。第一步搭建教程网上有很多,所以我跳过了