@nekoplayer 基本的にlocalhostでアクセスしたら動かないようになっているので、nginxなどを手前において、外部から参照できるドメインにhttps接続できるようにして、localhostにプロキシ接続する際にHostヘッダが外部参照したドメインを指しているようにする。.env.productionにLOCAL_DOMAIN=example.comって形で外部参照可能なドメインを記述して、それと一致するようにね。
やらかしているんじゃなくて、、セキュリティ強化で制限を追加してあるんだ、Mastodonの途中のバージョンから。
localhost:3000は、http接続ね。
回避する方法もなくはないけど、前提知識を把握してないとよけいわからなくなると思うので、普通に必要な構成をしよう。
@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; になってます)
@noellabo
ありがとうございます。
nginxのほうはさんざんトラシューしたので、把握してるつもりです。
今回、nginxでも403、port3000でも400番なので、どうしたもんかと
思案中なのでした。