ますとどんお一人様インスタンスが動かない理由
よくわからんけど、
journalctl -u mastodon-web
すると、
bundle[211]: [ActionDispatch::HostAuthorization::DefaultResponseApp] Blocked host: localhost
言われる。今んとこruby(RoR)を疑ってる
そもそもlocalhost:3000 がHTTPなのかHTTPSなのかようわからん。
でーもん小暮は全部仕事してる

$ telnet localhost 3000
Trying 127.0.0.1...
Connected to jammy.
Escape character is '^]'.
GET /
HTTP/1.1 400 Bad Request

$ w3m http://localhost:3000/ だと空のHP
https://だと、 wrong SSL number

ChatGPTに聞くと、公開Web dirの途中が実行属性(chdir)付いてない可能性と、ポスグレに繋がらない可能性を言われた。
けど、自分的にはRoRがやらかしてるんだと思う。
RoRには、全くいい思い出が無い。(クソソフト)
そもそも、どこに設定ファイルがあって、どこにログ吐くのかさえ、
調べたくもないぐらい、嫌いだ。

@nekoplayer 基本的にlocalhostでアクセスしたら動かないようになっているので、nginxなどを手前において、外部から参照できるドメインにhttps接続できるようにして、localhostにプロキシ接続する際にHostヘッダが外部参照したドメインを指しているようにする。.env.productionにLOCAL_DOMAIN=example.comって形で外部参照可能なドメインを記述して、それと一致するようにね。

やらかしているんじゃなくて、、セキュリティ強化で制限を追加してあるんだ、Mastodonの途中のバージョンから。

localhost:3000は、http接続ね。

回避する方法もなくはないけど、前提知識を把握してないとよけいわからなくなると思うので、普通に必要な構成をしよう。


ありがとうございます。
nginxのほうはさんざんトラシューしたので、把握してるつもりです。
今回、nginxでも403、port3000でも400番なので、どうしたもんかと
思案中なのでした。

@nekoplayer nginxからプロキシする際にpumaに渡されるHostヘッダと、.env.productionなどに指定したLOCAL_DOMAINが一致していないときのエラー([ActionDispatch::HostAuthorization::DefaultResponseApp] Blocked host: localhost)が出ているので、nginxの設定が完璧と仮定すると、リクエストしたURLのドメインとLOCAL_DOMAINが違うぐらいですね。

フォロー

@nekoplayer たとえば、fedibird.comに、テスト用にtest.fedibird.comで接続してもエラーにならないようにするには、

location @proxy {
proxy_set_header Host fedibird.com;

という感じでHostヘッダを固定してしまって、どんなドメインでユーザーがアクセスしてきても、pumaにはfedibird.comを渡すようにします。

(標準では proxy_set_header Host $host; になってます)

ログインして会話に参加
Fedibird

様々な目的に使える、日本の汎用マストドンサーバーです。安定した利用環境と、多数の独自機能を提供しています。