問題タブ [proxypass]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
386 参照

apache - ProxyPass と Varnish で外部ドメインをサブフォルダーとして表示する方法

外部ドメインをサブディレクトリとして表示するように vhost を構成しました。

ステージ サーバーの example.com/subfolder にアクセスしようとすると、動作し、externaldomain.com コンテンツが表示されます。本番サーバーで同じことを試みると、Varnish の問題により 500 エラーが発生します。

これは私のワニス構成です:

これはApacheのエラーログに書かれているものです

解決方法を教えていただけますか?

VCLに関連する何かをしなければならないと思いますが、それだけです。

0 投票する
1 に答える
61 参照

http - https が何らかの形で http に書き直され、エラーが発生する

簡単に言えば、独自の Web サーバーを実行するカスタム ソフトウェアがあります。次に、そのサイトで ssl を有効にするプロキシとして apache を使用する方法の説明を見つけました。(要するに、私のカスタム ソフトウェアは SSL をサポートしておらず、オプションではありません)

(ポートは内部で 443 に転送されます) に移動するhttps://myserver.com:8096/と、サーバーは URL を書き換えて、http://myserver.com:8096/abc/123/HTTPS を想定しているため接続が失敗します。

これが私のデフォルトのssl構成です。うまくいけば、どこかに間違いがあります...

不足している /VirtualHost があります。ここに表示する方法がわかりません...

誰にも手がかりがありますか?

前もってありがとう、マーク

0 投票する
2 に答える
17351 参照

apache - LocationMatch と ProxyPassMatch をどのように組み合わせることができますか?

テスト目的で社内マシンに Apache 2.4.6 サーバーをセットアップしています。Apache サーバーが行うべきことの 1 つは、localhost:3030 で見つかった別のサーバーのリバース プロキシとして機能することです。

localhost:3030 上のサーバーは、最初のパス レベルでいくつかのデータセット名のうちの 1 つを想定しています (現時点では、セットは dataset のみで構成されていexperimentalますが、後で追加される予定です)。要求されたパス。

私の仮想ホストでは、これは機能します:

experimental追加のデータセットについては、それをコピーして他のデータセット名に置き換えることができます。明らかに、これは多くのコードの重複/冗長性につながり、エラーの原因とメンテナンスの恐怖の両方になります。

したがって、私はもう少し柔軟になり、複数のデータセットを 1 つのブロックで扱いたいと考えています。LocationMatchこれは、ディレクティブで可能になるはずです。

このコメントこのページで示されているように、ブロック内で使用する場合は置き換える必要があります。基本的に、ドキュメントは同じことを述べています:ProxyPass ProxyPassMatchLocationMatch

同じことが LocationMatch セクション内で発生しますが、ProxyPass は正規表現をそのように解釈しないため、代わりにこの状況では ProxyPassMatch を使用する必要があります。

LocationMatchドキュメントは次のように説明しています。

2.4.8 以降では、名前付きグループと後方参照がキャプチャされ、対応する名前の先頭に「MATCH_」と大文字が付けられて環境に書き込まれます。これにより、mod_rewrite などの式やモジュール内から URL の要素を参照できます。混乱を避けるために、番号付けされた (名前のない) 後方参照は無視されます。代わりに名前付きグループを使用してください。

その情報は Apache 2.4.8 の時点でのみ有効です。これがおそらく、私の 2.4.6 インストールで以下が機能しない理由です。

一方、このページその投稿は、数値グループ インデックス ( ) を使用できることを暗示しています ($1ヘルプ テキストは httpd 2.4.8 の時点でのみ有効であるため、数値参照は 2.4.8 より前で機能するのではないかと疑っています/希望しています)。 (?)

いずれにせよ、私はこれを試しました:

ただし、ログによると、vhost URLのパスを要求するときではhttp://localhost:3030/$1/なく、内部呼び出しが呼び出されます。http://localhost:3030/experimental/experimental

ProxyPassMatchドキュメントは次のように言うだけです:

LocationMatch セクション内で使用する場合、最初の引数は省略され、正規表現は LocationMatch から取得されます。

LocationMatchただし、このテキストでは、とを組み合わせる方法の例をあえて提供していませんProxyPassMatch私は何を間違っていますか?

0 投票する
2 に答える
1777 参照

nginx - nginx: proxy_pass 応答ヘッダーに対してアクションを実行する

フロントエンド プロキシとして nginx を使用したいのですが、応答の MIME タイプ (Content-Type ヘッダー) に応じて、条件付きで別の URL にプロキシします。

たとえば、クライアントの 1% が PNG を処理しない User-Agent を使用しているとします。その UA で、応答のタイプが image/png の場合、PNG を取得して変換する特別な URL に再度 proxy_pass したいと考えています。

理想的には、この特別な処理を必要としない 99% のユーザーのパフォーマンスとキャッシュを損なわずにこれを行います。バックエンド アプリケーションを変更できません。(それ以外の場合は、UA を検出して応答を修正するか、X-Accel-Redirect を送信して nginx に別のロケーション ブロックを実行させることができます。)

これが不可能であるか、パフォーマンスが悪い場合、目的の効果を達成するためにモジュールの作成をどこから開始しますか? たとえば、このロジックの実装に最も近いのはどの拡張ポイントですか?

編集: Lua を使用してサブリクエストを実行し、そこで応答ヘッダーを検査できるようです。しかし、それはすべてのリクエストをLuaを介して渡すことを意味しますが、これは最適ではないようです

0 投票する
2 に答える
884 参照

apache - ProxyPass の内部リダイレクト

異なる Nexus サーバーに転送する 2 つの Apache ProxyPass ルールを設定しようとしています。私が欲しいのは:

http://mainserver/nexus->http://server1:8080/nexus

http://mainserver/nexus-pro->http://server2:8081/nexus

元のサーバーで動作するようにセットアップしましたが、2 番目のルールを追加すると、nexus-pro の要求が /nexus を使用してメインの apache サーバーにリダイレクトされ、それが間違ったサーバーに転送されるため、次のようになります。

http://mainserver/nexus-pro-> http://mainserver/nexus->http://server1:8080/nexus

これは Nexus 自体が行っていることだと思いますが、実際には制御できません。

これが私の現在の Apache 設定です。何を変更する必要がありますか?

0 投票する
1 に答える
3106 参照

ssl - nginxでsslアップストリームを使用したproxy_pass

サブドメインを構成して、制御できない他のサーバーにリクエストをプロキシしようとしています。友人がそのサーバーを運営しており、彼は独自の CA を使用して SSL 証明書の支払いを回避しています。自分のサブドメインの 1 つに構成をプロキシして、有効な ssl 証明書を実行しようとしましたが、正常に機能しましたが、彼と彼の「無効な」ssl 証明書にプロキシするとすぐに、nginx が資格情報を要求し続けます。

これが私の構成です:

ログにエラーはありません。/friend の外にあるものはすべて閲覧できます。認証は問題なく行われますが、/friend に入るとすぐに、間違ったパスワードを持っているかのように認証がポップアップし続けます。base64でエンコードされたものが有効であることはわかっており、サブドメインの1つで同じ認証を複製してテストしたところ、うまく機能したので、考えられる唯一の説明は、nginxが彼の証明書を気に入らないということです。

彼の CA を信頼できるようにするために見逃した設定はありますか? または、検証を無効にするためだけに、データはまったく意味がありません。http でも問題ありませんが、サーバーでそれを構成することを気にしたくありません。したがって、検証を無効にすることは、私にとって十分な解決策です。

ありがとう