Misskey: 諸々のリクエストにプロキシを使えるようにする

Created on 12 Oct 2018  ·  7Comments  ·  Source: syuilo/misskey

Summary

Environment



Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

⚙️Server ✨Feature

Most helpful comment

AP request Proxy対応できそう

All 7 comments

うちのインスタンスでは、global-tuunel-ngで対応しているけど、
host名にポート番号が含まれてしまって、Mastodonのインスタンスに401返される問題が発生している。
とりあえずは、検証対象にhost外して対処しているけれども…
https://gitlab.com/misskey-tor/misskey/issues/5

e1cc2394 でHostを入れるようになったので、https://github.com/syuilo/misskey/issues/2894#issuecomment-429393224 の問題は解消、global-tunnel-ngで問題なくなりました。
ただ、プロキシを使う場合には、DNSキャッシュされると非常に困るのでその部分は削除してます。
(名前解決はMisskeyではなく、プロキシサーバが行わなければならないので)

AP deliverだけが未対応でやりたいけどなかなかできない

Nodeでhttpsリクエストを出す方法はざっと2つ

  1. request (proxy対応) - AP deliver以外はこれを使用
  2. https (proxy非対応 (requestより低レイヤで処理)) - AP deliverはこれを使用

APにはHttpSignatureが必要、それに使ってるモジュールがhttp-signature
これがhttps`でRequestオブジェクトを作った後に使用する必要がある

requesthttp-signatureが使えればいいものの
requestはRequestオブジェクト生成後に処理を挟むことが出来ない
requestにはhttp-signatureモジュールを呼び出す専用の機能があるが
http-signature自体の実装が古く少しヘッダを整形する必要があるため、そのまま呼び出して使用することが出来ない。

おそらくhttp-signature
https://github.com/joyent/node-http-signature/pull/83 をマージしてくれればいいのだが
あまり保守されている様子がなく見込みがない。

対応するには、http-signaturerequestを両方forkする必要がある。
または、HTTP CONNECT に対応したProxy Clinetを書く必要がある。

AP request Proxy対応できそう

web-push がProxy使うっぽいわ

Was this page helpful?
0 / 5 - 0 ratings