5

ポート 9090 にリスナーを設定し、Host: test.host のようなヘッダーを 9090 で着信する各リクエストに追加して、それを 8080 に送信することは可能ですか?

ありがとう

編集:今のところリバースプロキシを使用し、入ってくるすべてのリクエストに hostname:port を適用しました。

4

2 に答える 2

4

Twisted には、ニーズに合わせて変更できるリバース プロキシの実装があります。ここで例を見ることができます。のソース コードをtwisted.web.proxy見ると、「Host:」ヘッダーが に設定されていることがわかります。そのReverseProxyRequest.processため、それをサブクラス化して独自のヘッダーを設定できます。

于 2012-06-12T12:10:18.647 に答える
1

Web アプリケーションだけが認識できるパラメータに基づいてプロキシ リクエストを調整する必要がない限り (たとえば、プロキシ リクエストを Web アプリケーションのカスタム認証システムで認証する必要がある場合)、Web サーバーのプロキシ機能を使用する必要があります。

Apache の例:

Listen 0.0.0.0:9090
ProxyRequests off
<VirtualHost myhost:9090>
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/
    ProxyPassReverseCookieDomain localhost myhost
</VirtualHost>

Flask または Werkzeug アプリケーションで物事をプロキシする必要がある場合は、httplib を使用して、着信要求データに基づいて要求を作成し、生または変更された応答 (リンクの書き換えなど) を返すことができます。それは実行可能です。良い代替手段がなかった場所で、そのようなプロキシを使用しています。そうする場合は、正規表現を使用して HTML リンクを書き換えないことをお勧めします。代わりに PyQuery を使用しました。これを正しく行う方がはるかに簡単です。

于 2012-06-13T08:52:01.963 に答える