問題タブ [mod-proxy-html]

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 投票する
1 に答える
1712 参照

apache - Apache 2.4 で URL を XML に書き換えるにはどうすればよいですか?

Apache 2.4 にはmod_proxy_htmlが含まれており、これは素晴らしいことです。サーバーから返された HTML 内のあらゆる種類の URL をキャッチして修正します。しかし、私はテキスト/xml ファイルをクライアントに送り返す Seam アプリを持っていますが、完全に修飾された URL も書き換える必要があり、mod_proxy_html はそれらを修正しません。

どうやらmod_proxy_htmlとは別に存在していた mod_proxy_xml があったようですが、Apache にはそれが含まれていませんでした同じことを行うように mod_proxy_html を構成する方法はありますか? サーバーから戻ってきた HTML ファイルと XML ファイルの両方で URL を修正する必要があります。

ファローアップ:

私はこれと戦い続けており、mod_substitute を使用するなど、いくつかの異なる解決策を試しましたが成功しませんでした (これは、何かを代用するようには見えないため、どういうわけか間違って構成しています)、強制フラグ mod_proxy_html を使用して試して強制する必要があります特定のパスの下にあるすべてのファイルを実行します。

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

apache - TomcatのJavaWebサイトApacheのPHPWebサイト-PHPWebページをJavaWebページに取り込む方法は?

TomcatにJavaWebアプリケーションをデプロイしています。また、Webリクエスト(ポート80/443)をTomcatにルーティングするようにApacheとmod_proxy_ajpを設定します。

同じApacheサーバー(おそらくサブディレクトリ(/ var / www / ourapp)の下)にPHPアプリケーションをデプロイしたいと思います。

次に、Javaアプリケーションによって生成されたWebページ内のPHPアプリケーションからWebページにアクセスして表示したいと思います。シングルサインオンの実装も計画しています。例:JavaのWebページには(JQuery Tabs)があり、PHP Webページをタブ内に表示し、他のすべてのHTMLはJavaアプリケーションから取得します。

これについてどのように進めるかについての全体像を教えてください。主に1.WebリクエストをTomcatにルーティングするために使用されるのと同じApacheサーバーにPHPアプリケーションをインストール/セットアップするにはどうすればよいですか?つまり、サブドメインを設定するか、サブディレクトリ2にインストールします。PHPページを現在のWebページ(Javaで生成)に取り込む方法。AJAXリクエストを使用できますか、それともJava PHP Bridge / Quercesなどのアプリケーションを使用する必要がありますか?

よろしくお願いします。よろしく。

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

apache - mod_proxy_html 構成 - 切り捨ての問題

できる限り周りを見回しましたが、完全に困惑するところまで来ました。

私は Apache を上に置いた RedHat サーバーを実行しています。これをプロキシとして使用して、外の世界と他の 2 つのアプリケーション サーバーの間に置かれ、ベースはまったく異なります (IIS が 1 つ、Linux が 1 つ)。

これらのサーバーは両方とも、そこにあるアプリケーションが理解できる正しい内部ネットワーク URL を持っています。アプリ (DotNetNuke および WordPress から派生) は両方とも、正しい/適切なマークアップを含む HTML 5 ページを生成し、プロキシの外部 (つまり、内部ネットワーク) で正しくレンダリングします。

ただし、これらのページをプロキシ経由で渡すと、CSS および JavaScript ファイルの末尾の文字が欠落しているように見えます。

したがって (実際には)、JavaScript コードは次のようになります。

または次のような CSS:

...次のようなコードになります。

またはこのように:

プロキシのセットアップでは、mod_proxy および mod_proxy_html Apache モジュールを使用しています。私が遭遇している問題は、現在次のような mod_proxy_html の構成に関係していると確信しています。

http://httpd.apache.org/docs/2.4/en/mod/mod_proxy_html.htmlの Apache ドキュメントを調べても、すぐに手がかりは得られません。

誰かが同じ問題に遭遇しましたか? それとも、私が見逃している何かがありますか?

どんな助けでもありがたく受け取られます!

更新しました:

最終的に、この問題は、すべてのコンテンツを UTF-8 エンコードとして解析する際の mod_proxy_html のデフォルトの動作にあるように見えました (コンテンツの一部がエンコードされていない場合、最善の努力にもかかわらず修正できませんでした)。

この目的のために、少し作業した後、代わりに mod_substitute を使用して (テキストをテキストとして解析し、ファイルのエンコードを無視します)、読み込み時間を短縮するキャッシュ ソリューションを使用しました。

残念なことに mod_proxy_html はこのプロジェクトでは機能しませんでした - しかし、最終的にそれを行う方法が見つかりました!

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

apache - URLを書き換えるProxyHTML

2つのApacheサーバーをセットアップしました。1 つはポート 80 に、もう 1 つはポート 8077 にあります。リバース プロキシ経由で 8077 のサーバー上のすべてを表示したいと考えています。現時点で私は持っています:

これにより、サイトの最初のページにアクセスできますが、画像、CSS、およびその他のページへのリンクが機能しません。

たとえば、html の css は次のように表示されます。

私が実際にそれをしたい場所

8077 サーバーからファイルを取得します。それを機能させるには、現在の設定で何ができますか?

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

apache - Apache で mod_proxy を使用して HTML を操作する (例: 広告を削除する)

今のところこれは単なる技術的な課題ですが、基本的には次のことを行いたいと考えています。

mod_proxyおよびを使用して Web ベースのリバース (ゲートウェイ) プロキシを作成します。これmod_proxy_htmlは、プロキシのホスト名と一致するように HTML URL を書き換えるだけでなく、プロキシされている HTML を書き換えまたは操作します。

「中間者」ゲートウェイ プロキシでのこの操作により、次のようなあらゆる種類の操作が可能になります。

  • 広告を削除
  • テキストをある言語から別の言語に翻訳する
  • それ以外の場合は、元のサイトをハッキングまたは「改善」します

もちろん、多くの悪いことに使用される可能性もありますが、それはこの質問の範囲外です。

が元の HTML を解析してすべての URL を書き換えることは知っていmod_proxy_htmlますが、解析中の HTML を評価して操作する独自のコードを作成することもできますか? または、このための他のモジュールはありますか?

または、これを実行できるリバース プロキシはありますか? この目的に適した言語であれば、喜んで適応します。

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

php - Apache の mod_proxy_html with PHP header("Location:..."); リダイレクトしない

私はこの問題をグーグルで検索しましたが、何も思いつきませんでした。

目標
リバース プロキシを (Apache の mod_proxy を使用して) 構成し、mod_proxy_html を使用してインターネット経由で内部 PHP アプリケーションにアクセスできるようにし、アプリケーションの URL を書き換えます。

問題の説明
次のコードのみを含む land.php を検討してください。

および redirect.php のみ:

私のhttpd.confからのこのスニペットで

http://example.com/landing.phpにアクセスして「redirect.php」をクリックすると、landing.php ページに戻るはずです。代わりに、Firefox では「この接続はリセットされました」、Chrome では「データが受信されませんでした」というメッセージが表示されます。(参考までに、http://internal.example.com/redirect.php にアクセスすると正しくリダイレ​​クトされます。)

質問:
リダイレクトがリバース プロキシ経由で失敗する理由と、これを修正するにはどうすればよいですか?

ヒント
役立つ可能性のあるいくつかのことを発見しました...

「ProxyHTMLLinks a href」をコメントアウトすると、これが正しく機能することがわかっています。しかし明らかに、これは私が必要とする書き換え機能です。

また、redirect.php ページを次のように変更することもできます。これは正しく機能します。

このテキストは、何らかの形でページまたは HTTP ヘッダーに何らかの影響を与え、mod_proxy_html (より具体的には ProxyHTMLLinks) がそれがない場合とは異なる動作をするようになると思います。

また、redirect.php ページを次のように変更して、動作させることもできます。

これが機能するのは、ProxyHTMLLinks がデフォルトで Content-Type text/html ファイルにのみ適用されるためです。ただし、これを機能させるために header("Location:...") へのすべての呼び出しをハックする必要はありません。header("Location:...") へのすべての呼び出しを変更してもかまいません。変更する内容がハックを作成するのではなく、問題を修正することであると仮定します。

最後に、リバース プロキシ サーバーでパケット スニッフィングを行ったところ、ヘッダー ("Location:...") が HTTP/1.1 302 Not Found をリバース プロキシ サーバーに送信することがわかりましたが、これは通過しません。 redirect.php を要求しているブラウザーに。上記の「解決策」のいずれかを試すと、302 がリバース プロキシ サーバーから redirect.php を要求しているコンピューターに渡されます。私の理解では、 Location ヘッダーはブラウザーに送られ、ブラウザーは返された新しい場所を要求する必要があります。302がブラウザに到達しないため、失敗しています...

参考までに、mod_proxy_html がどこかで失敗しているかどうかを確認するためにエラー ログを調べてみましたが、何も表示されませんが、ロギングに関する具体的な提案は受け付けています。ロギングを正しく設定しています。

申し訳ありませんが、これは非常に長く、できるだけ具体的にしようとしています。前もって感謝します!

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

apache - サブフォルダー技術とプロキシを使用して i18n を追加する

コンテキスト「/」で実行されている webapp があり、サブフォルダー手法を使用して国際化したいと考えています。

以前にホストされていたのと同じサイトが欲しい

URLの下で異なる言語のコンテンツを提供するようになりました

Tomcat の前に Apache Proxy を追加して、webapp をそのままにしておくことを考えています。

言語を識別するリクエストに含まれる Cookie に基づいて、アプリがすでに i18n をサポートしているとします。

Apache Proxy と Rewrite ルールを使用すると、リクエストから言語を取り除き、抽出した言語でこの Cookie を追加できます。

passProxyReverse特定の言語 ( ?)を追加して、Tomcat からのリダイレクトを変換するには、Apache が必要です。

また、アプリによって生成された HTML が何らかの方法で解析され、次のように見えるリンクが ( ?)http://www.mysite.com/folder/contact.htmlに変更されることも必要です。http://www.mysite.com/de/folder/contact.htmlmod_proxy_html

異なるコンテキストで同じ webapp をデプロイし、memcache を介してセッションを共有するなど、他のソリューションについて考えました。または、この言語サブフォルダーの分離を、webapp のフィルターとカスタム JSTL などを使用して直接管理します。

すべてのソリューションは少し複雑すぎるようです。

私が達成しようとしているのは、SEO の理由からサブフォルダー手法を使用し、Web アプリケーションがこれをあまり認識しないようにすることです。

複雑にしすぎているかどうかわかりません.
必要なものを達成するためのより良い/簡単な方法はありますか?

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

mod-proxy-html - mod_proxy_html と AJAX レスポンス

私は使用してmod_proxy_htmlおり、AJAX 応答は HTML 内にラップされています

これはによって行われmod_proxy_html、私はこれを避けたいと思っています。