
現在、コンテキストを使用して「プロファイル」を選択するアプリケーションを再配置しています(アプリのプロパティとJDBC接続文字列を定義します)
現時点では、URL は次のようになります。https://www.foo.com/test/company/プロフィール名/ 次にリダイレクトされますhttps://www.foo.com/test/company/プロファイル名/web/online しかし、API コンテキストのようなものも存在します: https://www.foo.com/api/プロファイル名/
現在のアプリケーションでは、フロントエンドとバックエンドで Apache + Haproxy を使用していることがわかっています。
Web => apache => local haproxy => backend haproxy => application backend
私の問題は、ここで同じ設定を再現しようとしているのですが、プロキシがうまく機能しないことです (変更したホスト ファイルでテストします)。
https://www.foo.com/test/company/プロフィール名/リダイレクト先https://www.foo.com/web/test/company/プロフィール名/online
初期コンテキストがアプリケーションによってオプション文字列として取得されたようです。
haproxy / apache config をいくつか組み合わせて、プロファイルのコンテキスト選択なしで単純なリバース プロキシ構成を使用すると、動作します (ただし、プロファイルは 1 つしかありません...)。
https://www.foo.com/web/online
このような動作は既に発生していますか? 私は haproxy 1.8 と apache httpd 2.4 を使用しています。
私の haproxy 設定は次のようになります。
frontend default
bind *:80
capture request header X-Forwarded-For len 15
acl rest_url path /api
acl rest_url path_beg /api/
acl app1_profile path_beg /test/company/app1
acl app2_profile path_beg /test/company/app2
use_backend app3 if rest_url
use_backend app1 if app1_profile
use_backend app2 if app2_profile
backend app1
cookie SERVERID insert indirect nocache httponly
#http-request redirect location http://test.domain.com%[url,regsub(^/web/,/test/company/app1/web/,)]%[query] if { path_beg /web/ }
#http-request set-var(txn.path) path
#http-response redirect location https://test.domain.com/test/company/app1/var(txn.path) if ! { path_beg /test/ }
#reqirep ^Host:\ .*$ Host:https://test.domain.com/test/company/app1/
server app1_backend 192.168.10.15:80
Apache 設定:
ProxyRequests On
ProxyPreserveHost On
<Location /test/company/app1/>
ProxyPass http://localhost:80/
ProxyPassReverse http://localhost:80/
</Location>
動作する構成を得るために何時間も費やしましたが、まだ動作しません。誰かが助けてくれることを願っています。
ありがとう、
セバスチャン