前提
現在、クライアントPCのブラウザからAzure AppServiceを経由してIPアドレス制限がかかっているAPIにアクセスし、
文字列の翻訳を行うAPIを運用しています。
クライアント(ブラウザ)⇔ Azure AppService(ASP.NET WebAPI)⇔ 業務用のWeb API(IPアドレス制限あり)
■利用例
クライアントPCブラウザからGETでhttps://xxx.azurewebsite.net/api/translate にアクセスしてもらい、
戻り値をjson形式でクライアントに戻す形になります。
###実現したいこと
次のステップとして、「業務用のWeb API」を html を返す一般的な Web サイト(例えばここ Teratail のようなサイト)にし、「Azure(ASP.NET WebAPI)」を中継して「クライアント(ブラウザ)」に表示したいと考えております。
クライアント(ブラウザ)⇔ Azure AppService(ASP.NET WebAPI)⇔ 業務用のWebサイト(IPアドレス制限あり)
調べたところ、AzureのAppServiceでARR機能が利用できるとのことで、リバースプロキシを用いて
下記のようにURLを書き換えてWebデータを取得したいと考えております。
従来の翻訳APIへアクセスするときは書き換えせず、MAPWebページにアクセスするときだけ別ドメインに飛ばすイメージです。
https://xxx.azurewebsite.net/api/translate?text=コンビニはどこ → そのままのURL
https://xxx.azurewebsite.net/api/maps?lat=35&lon=139 → https:/mappage.com?lat=35&lon=139
該当WebサイトにはIP制限がかかっており、クライアントPCからは直接接続できないためRedirectは利用できません。
該当のソースコード
webconfig
1<rewrite> 2 <rules> 3 <rule name="ReverseProxy" stopProcessing="true"> 4 <match url="(maps)(?.*)" /> 5 <action type="Rewrite" url="https:/mappage.com?{R:1}" /> 6 </rule> 7 </rules> 8 </rewrite>
発生している問題・エラーメッセージ
https://xxx.azurewebsite.net/api/maps?lat=35&lon=139でアクセスしたところ、
うまくURLが書き換えられえいないのか、404エラーが発生しました。
This XML file does not appear to have any style information associated with it. The document tree is shown below. <Error> <Message> No HTTP resource was found that matches the request URI 'https://xxx.azurewebsites.net/maps?lat=35&lon=139'. </Message> <MessageDetail> No type was found that matches the controller named 'maps'. </MessageDetail> </Error>
もともとあるコントローラーについては問題なく稼働しています。
https://xxx.azurewebsite.net/api/translate?text=コンビニはどこ
また、無理やり全URLを書き換えで転送できるように試してみたところ、
それも動作しなかったのでRewriteが別ドメイン指定では動作していないような挙動となっています。
webconfig
1<rewrite> 2 <rules> 3 <rule name="ReverseProxy" stopProcessing="true"> 4 <match url=".*" /> 5 <action type="Rewrite" url="https://www.yahoo.co.jp/" /> 6 </rule> 7 </rules> 8 </rewrite>
試したこと
Creating Rewrite Rules for the URL Rewrite Module
AppServiceで上記の内容を試し、Rewriteモジュールが動作することを確認しました。
ARRを利用した、別ドメインへのルーティング方法について
似た内容を投稿されている方がいたので、参考にさせていただきましたが目的の動作はしませんでした。
恐れ入りますが、ご指摘よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ASP.NET 4.0.30319
IIS/10.0
AppServicePlan APIServicePlan(S1:1)
あなたの回答
tips
プレビュー