1

Apache Web サーバーを実行する必要があります。ポート 80 に 1 つ、ポート 8077 にもう 1 つ。

可能であれば、ポート 80 バージョンを介してすべてのトラフィックをリダイレクトしたいと考えています。

私が理想的に望んでいるのは、 http://translate.example.comにアクセスでき 、トラフィックがhttp://www.example.com:8077に転送されることです。

メイン ポート 80 サーバーで既に多くの mod_rewrite が実行されていますが、どちらのサーバーに構成が必要なのか、両方に構成が必要なのかわかりません。

translate.example.com/img (またはその他のサブディレクトリ) が実際に 8087/images ディレクトリを指していることを確認したいと考えています。

アップデート

私は今、次のものを持っています:

RewriteCond %{HTTP_HOST} example[NC]
RewriteCond %{REQUEST_URI} ^/glot$ [NC]
RewriteRule    ^(.*)$  http://www.example.com:8077/$1  [P]
ProxyPassReverse / http://www.example.com/

他のサーバーの新しいページが表示されるようになりましたが、画像や CSS などのすべてのリソースが見つからないことがわかりました

ソースを表示すると、インストールされた製品のすべてのリソースが先頭のスラッシュで設定されます

例えば

/img/glotpress-logo.png

そのため、リソースをロードする方法がわかりません。元の質問のように、元の開始点が glot.example.com ではなく www.example.com/glot であれば、私は十分に満足しています

4

2 に答える 2

1

リソースを別のサーバーに再マップすることはできますが、他のサーバーをデフォルト以外のポートにすると、一部の訪問者はポートへのアクセスがブロック (ファイアウォール) される可能性があるため、それらを表示できなくなる可能性があります。ポートがブロックされる心配がない場合は、mod_rewrite Remapping Resources を使用できます。方法。

RewriteEngine On
RewriteRule ^/images/(.+) http://www.example.com:8077/images/$1 [R,L]

誰もが外部リソースを表示できるようにしたい場合は、apache が訪問者の接続を透過的に example.com:8077 にトンネリングするプロキシを使用する必要があります。Apache の Web サイトでプロキシ用の mod_rewrite の詳細を読むことができます。

RewriteEngine  on
RewriteBase    /images/
RewriteRule    ^images/(.*)$  http://example.com:8077/images/$1  [P]
ProxyPassReverse /images/ http://example.com/images/

アップデート

削除しようとしましたか

RewriteCond %{HTTP_HOST} example[NC] 

この行は基本的に、HTTP_POST が example.com で、www.example.com から来ている場合にのみ処理することを示しています。このルールは適用されません。「example[NC]」がタイプミスであることを願っています。

最終的にはおそらく次のようになります

RewriteRule ^/glot/(.*)$ http://www.example.com:8077/glot/$1 [P] 
ProxyPassReverse /glot/ http://www.example.com:8077/glot/
于 2013-01-20T01:06:54.247 に答える
0

8077 サーバーのプロキシとして機能させるには、ポート 80 サーバーで構成を行う必要があります。

Apache ドキュメントはこちら: http://httpd.apache.org/docs/trunk/rewrite/proxy.html

于 2013-01-20T00:55:04.767 に答える