タグ付けされた質問 「mod-proxy」

Apacheをプロキシサーバーとして使用できるApache Webサーバー用のモジュール。このモジュールを使用すると、apacheは通常のプロキシとして、または上流サーバーのリバースプロキシとして機能できます。

1
ProxyPassが404を返したときのApache HttpdカスタムErrorDocument 404
プロキシパスを使用して、別のアプリケーションサーバーの前にApache Webサーバーがあります。アプリケーションへのリクエストがエラー404を返したとき、アプリケーションサーバーからのエラーページではなく、Webサーバーからのカスタムエラーページを表示したいと思います。仮想ホストでErrorDocument 404をセットアップしようとしましたが、機能しません。どうすればよいですか?またはこれは不可能ですか? <VirtualHost *:80> ServerName servername DocumentRoot /somepath/ ProxyPass / http://localhost:8080/someapp/ ProxyPassReverse / http://localhost:8080/someapp/ ErrorDocument 404 /error.html </VirtualHost>

3
htaccessのApache 2.4 mod_proxy_fcgiとRewriteRulesを理解する
最近、Webサーバーの1つをApache 2.4に切り替え、php-fpmおよびmod_proxy_fcgiを介してPHPを実行しました。ほとんどすべてが非常にうまく機能していますが、まだ理解していない問題が1つあります。私たちのサイトの1つはWordPressを実行しています。WordPressは、.htaccessファイルに書き換えルールの優れたリストを提供しています。そして、それらはvhostセットアップのProxyPassディレクティブではうまく機能しないようです。 私たちの仮想ホストには次の設定が含まれています: ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.2:9126/<path>/$1 これはほとんどの場合に機能します。 htaccessファイルは、特に次のことを行います。 RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] サイトはサブディレクトリ内のマルチブログなので、URL /blogname/wp-admin/load-styles.php?xxxxをwp-admin / load-styles.php?xxx(2番目の書き換えルール)に書き換える必要があることを読みました。しかし、mod_proxyログを見ると、実際に渡される要求は/blogname/wp-admin/load-styles.phpです。 優先順位の問題があるため、これを読みました。すべてのRewriteRulesが完了する前に、ProxyPassルールが起動します。 私は困惑しています-原因は何ですか?

2
httpとhttpsに基づいてmod_proxyをProxyPassに構成する方法
SSLを有効にしてApache Tomcatを実行しています。私はリバースプロキシとして動作するApache HTTPサーバーを持っているので、ユーザーがhttp:// myserver / tomcat /を押すと、それらはhttp:// myserver:8080に渡されます。 ProxyPass /tomcat/ http://myserver:8080/ ProxyPassReverse /tomcat/ http://myserver:8080/ SSL用に構成されたApache HTTPサーバーも持っているので、ユーザーがhttps:// myserver / tomcat /を押すと、それらはhttps:// myserver:8443 /に渡されるはずです。 現在のProxyPassおよびProxyPassReverse構成では、非SSL URLにリダイレクトされます。着信要求に基づいて別のプロトコルとポートにリダイレクトするようにプロキシパスを設定するにはどうすればよいですか? つまり、誰かがHTTPS経由で入ってくる場合、どうすればそれらを私のtomcat @ https:// myserver:8443にリダイレクトできますか? 更新: @ mike-insch 私は試した: NameVirtualHost *:443 <VirtualHost *:80> ProxyPass /tomcat/ http://myserver:8080/ ProxyPassReverse /tomcat/ http://myserver:8080/ </VirtualHost> <VirtualHost *:443> ProxyPass /tomcat/ https://myserver:8443/ ProxyPassReverse /tomcat/ …

2
ProxyPassReverseディレクティブの使用とは
apache.orgの定義によると: このディレクティブにより、Apache httpdはHTTPリダイレクト応答のLocation、Content-LocationおよびURIヘッダーのURLを調整できます。これは、Apache httpdがリバースプロキシ(またはゲートウェイ)として使用され、リバースプロキシの背後にあるバックエンドサーバー上のHTTPリダイレクトのためにリバースプロキシをバイパスすることを回避する場合に不可欠です。 上記で具体的に説明したHTTP応答ヘッダーのみが書き換えられます。Apache httpdは他の応答ヘッダーを書き換えたり、デフォルトでHTMLページ内のURL参照を書き換えたりすることはありません。つまり、プロキシされたコンテンツに絶対URL参照が含まれている場合、プロキシはバイパスされます。プロキシと一致するようにHTMLコンテンツを書き換えるには、mod_proxy_htmlをロードして有効にする必要があります。 pathはローカル仮想パスの名前です。urlは、リモートサーバーの部分的なURLです。これらのパラメーターは、ProxyPassディレクティブの場合と同じ方法で使用されます。 誰か私にそれがどのように機能するか説明してくれませんか?一般に、このディレクティブは何をしますか?

3
個々のプロキシパスルールのProxyPreserveHost
私のWebホストには2つのプロキシパスルールがあります。1つはキャッシュの目的でローカルワニスインスタンスを指し、これをProxyPreserveHostを有効にし、もう1つはサードパーティのホストサイトを指し、ProxyPreserveHostを無効にします。とにかく私はこれをルール/パスごとに行うことができますか?

2
途中でApache Proxyを使用して302 App Server ReDirect URLを書き換える
奇妙な設定があります。次のようになります。 Browser ----------> HTTPs Proxy ------> Apache HTTP -----> Tomcat AJP HTTPS HTTP AJP HTTPSプロキシ(非常にダムなプロキシ)では、URLはhttps://proxy.domain.com/appのようになります。次に、http://apache.domain.com/app(ホストproxy.domain.comを渡す)のように、HTTPを使用してApacheにトンネリングされます。Apacheは、AJPプロトコルを使用してローカルでajp:// localhost:8009 / app /にリクエストをトンネルします。 アプリサーバーがリクエストされたパスをリダイレクトしたい場合があります。たとえば、/ app /を/ app / webappにリダイレクトします。したがって、パスをリダイレクトする302をApacheに送り返します-おそらくajp:// localhost:8009 / app / webappのようなものです。次に、ApacheはリダイレクトURLをhttp://proxy.domain.com/app/webappに書き換えます。HTTPSプロキシはダムなので、リダイレクトを分析してhttpをhttpsに変更しません。 したがって、ユーザーをhttpsに送信するために302リダイレクトURLを書き換えるようにApacheを設定できるかどうかを考えたいと思います。 これが、Apacheのhttps.confでこれまでに使用した設定です。 ProxyPreserveHost on RewriteEngine on RewriteRule ^/app$ /app/ [PT] ProxyPass /app ajp://localhost:8009/app ProxyPassReverseを使用してみましたが、302リダイレクトURLをhttpではなくhttpsで強制的に書き換える方法を理解できませんでした。 何かご意見は?

1
Apache ProxyPassまたはProxyPassMatch(ファイルをプロキシから除外するため)
VirtualHostを設定して、すべての要求をポート9000で実行されている別のサーバーにプロキシします。 私が持っているもの: ProxyPass / http://localhost:9000/ ProxyPassReverse / http://localhost:9000/ 私が試したこと: ! ProxyPass /test.html http://localhost:9000/ ProxyPass /test.html ! http://localhost:9000/ ProxyPassMatch !^/(.*\.html)$ http://localhost:9000/$1 どれもうまくいきませんでした... ファイルまたはファイルのセットをプロキシから除外したいのですが、ドキュメントに「!ディレクティブはサブディレクトリをリバースプロキシしたくない場合に便利です」と書かれていますが、例はありません。その状況のた​​めに。

5
WebサーバーのDNSをあるIPアドレスから別のIPアドレスにスムーズに移行するにはどうすればよいですか?
現在、Linux / Apacheサーバー用に登録されているドメイン名を、新しいIPアドレスで別のサーバーに置き換えます。 データの移行は比較的速く、そのプロセス中に5分の中断が許容されます。 DNSレコードのTTLは6〜12時間で、明らかに高速化できません。 この変更の結果として考えられるものは何ですか?おそらく古いアドレスをまだ見ているユーザーは引き続き古いサーバーにアクセスしますが、DNSキャッシュの有効期限が切れているか空のユーザーには新しいドメインが表示されます。 古いサーバー(Apacheまたはiptablesを使用)から新しいIPに何らかのリダイレクトを行うことはできますか?古いサーバーは、必要な限り実行を継続できます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.