1

異なるポートで 2 つのサイトを実行している 1 つの Web サーバーがあります。IE: server:8081 と server:8083 2 つの DNS レコードを設定し、それを「自分のサーバー」に指定しました</p>

Dev.server.com と Pre.server.com

Dev.server.com を server:8083 にリダイレクトしたいが、URL を常に Dev.server.com のままにし、Pre.server.com を server:8081 にリダイレクトするようにマスクするが、URL をマスクして常に pre.server.com のままにしたい

このように設定すると

<VirtualHost *:80>
ServerName http:// Dev.server.com
ProxyRequests off
ProxyPass / http://server:8083
ProxyPassReverse / http://server:8083
</VirtualHost>

<VirtualHost *:80>
ServerName http:// Pre.server.com
ProxyRequests off
ProxyPass / http://server:8081
ProxyPassReverse / http://server:8081
</VirtualHost>

すべてが Dev インスタンスにルーティングされ、Pre インスタンスには何も到達しません

このように設定しました。

<VirtualHost *:80>
ServerName http:// Dev.server.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^dev\.server\.com$ [NC]
RewriteRule ^(.*)$ http:// Dev.server.com:8083$1 [R]
RewriteCond %{HTTP_HOST} ^pre\.server\.com$ [NC]
RewriteRule ^(.*)$ http://pre. server.com:8081$1 [R]
</VirtualHost>
Listen 0.0.0.0:8083
Listen 0.0.0.0:8081
<VirtualHost *:8083>
ServerName dev. server.com
ProxyRequests off
ProxyPass / http:// server.com:8083/jde/owhtml/
ProxyPassReverse / http:// server.com:8083/jde/owhtml/
Oc4jMount /jde HTML_DV_8083
Oc4jMount /jde/* HTML_DV_8083
</VirtualHost>

<VirtualHost *:8081>
ServerName pre.server.com
ProxyRequests off
ProxyPass / http:// server.com:8081/jde/owhtml/
ProxyPassReverse / http:// server.com:8081/jde/owhtml/
Oc4jMount /jde HTML_PY_8081
Oc4jMount /jde/* HTML_PY_8081
</VirtualHost>

これはルーティングには完全に機能しますが、URL はマスクされません。これは、望ましくない URL ウィッチにポートを追加します。

私が間違っていることについて何か考えがありますか?

4

1 に答える 1

1

ポート 80 の vhost でリバース プロキシを実行する必要があります。mod_rewrite を使用してブラウザを のような URLにリダイレクトしてhttp://Dev.server.com:8083/いるため、それがブラウザに表示されます。ポート 80 に 2 つの仮想ホストが必要です。

<VirtualHost *:80>
  ServerName dev.server.com

  ProxyRequests off
  ProxyPass / http://server.com:8083/jde/owhtml/
  ProxyPassReverse / http://server.com:8083/jde/owhtml/
  Oc4jMount /jde HTML_DV_8083
  Oc4jMount /jde/* HTML_DV_8083
</VirtualHost>

<VirtualHost *:80>
  ServerName pre.server.com

  ProxyRequests off
  ProxyPass / http://server.com:8081/jde/owhtml/
  ProxyPassReverse / http://server.com:8081/jde/owhtml/
  Oc4jMount /jde HTML_PY_8081
  Oc4jMount /jde/* HTML_PY_8081
</VirtualHost>

「ServerName」はdev.server.comandpre.server.comであり http:// Dev.server.comスキームと :// の後にスペースが続くことに注意してください。http:// Dev.server.comアクセスしようとしているホスト名ではないため、apache はすべてを最初の vhost にデフォルト設定します。ポート 80 では何も一致しないため、dev と pre の両方がデフォルトで最初の vhost になるため、これがおそらく 2 回目の試行が機能する理由です。

于 2013-09-03T19:25:09.287 に答える