これらのドメインをこれらのポートにマップしたいと思います。どうすればいいですか?
http://test1.example.com/phpmyadmin/ example.com:80/phpmyadmin/
http://test1.example.com/app1/ example.com:8080/app1/
http://test1.example.com/app2/ example.com:8090/app2/
http://webmin.example.com/ example.com:10000/
これが私がしたことです。問題は、phpmyadmin
が機能していないことです。 glassfish
に転送されます。
webmin
は別のドメインであるため、機能しています。
phpmyadmin
を同じドメインにマッピングするにはどうすればよいですか? http://test1.example.com/phpmyadmin/
<VirtualHost *:80>
ServerName test1.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPass /admin/ https://localhost:4848/
ProxyPassReverse /admin/ https://localhost:4848/
</VirtualHost>
<VirtualHost *:80>
ServerName test1.example.com/phpmyadmin/
DocumentRoot /usr/share/phpmyadmin
Alias /phpmyadmin /usr/share/phpmyadmin
Alias /mysql /usr/share/phpmyadmin
</VirtualHost>
<VirtualHost *:80>
ServerName webmin.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:10000/
ProxyPassReverse / http://localhost:10000/
</VirtualHost>
新しい場所を一番上のVirtualHostブロック内に配置します。
<VirtualHost *:80>
ServerName test1.example.com
ProxyRequests Off
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
ProxyPass /admin/ https://localhost:4848/
ProxyPassReverse /admin/ https://localhost:4848/
ProxyPass /phpmyadmin/ https://localhost:80/phpmyadmin/
ProxyPassReverse /phpmyadmin/ https://localhost:80/phpmyadmin/
ProxyPass /app1/ https://localhost:8080/app1/
ProxyPassReverse /app1/ https://localhost:8080/app1/
ProxyPass /app2/ https://localhost:8090/app2/
ProxyPassReverse /app2/ https://localhost:8090/app2/
</VirtualHost>
@ josh-jollyが示唆しているように、さまざまなプロキシステートメントを単一のVHostに配置すると、構成に複数のVHostがあり、すべてがポート80で絶対にすべてをリッスンしている場合に役立ちます。
複雑さの基本的な順序
ただし、Joshの推奨事項が伝えていない(そして彼の例では誤って説明している)のは、mod_rewriteと同様に、mod_proxyが提供されたパターンを受信した順序で処理することです。
これが意味するのは、他のProxyPass/ProxyPassReverseブロックの前に次の行を配置すると、すべてのトラフィックがこのパターンによって捕捉されるということです。
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
これが、PHPMyAdminに送信される目的のトラフィックではなく、すべてのトラフィックがGlassfishに送信されていた理由である可能性があります。
複雑さのネストされた順序
同様に、別の方法でルーティングしたいがネストされているURLパターンの複雑さの規則の順序に注意する必要があります。
次の例は、複雑さのルールセットの巧妙に作成されていない順序を示しています。
ProxyPass /myapp http://localhost:9090/
ProxyPassReverse /myapp http://localhost:9090/
ProxyPass /myapp/images http://localhost:8080/
ProxyPassReverse /myapp/images http://localhost:8080/
この例では、両方のURLが/myapp
に接続しているため、すべてのトラフィックが9090ポートに流れますが、mod_proxyは/myapp/images
パターンに到達する前に、より基本的なパターンに一致します。
次のようにブロックを並べ替えると、URLパターンの複雑さが低下するため、両方のパターンを適切に一致させることができます。
ProxyPass /myapp/images http://localhost:8080/
ProxyPassReverse /myapp/images http://localhost:8080/
ProxyPass /myapp http://localhost:9090/
ProxyPassReverse /myapp http://localhost:9090/
良い習慣