質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

0回答

3000閲覧

【Azure App Service】IISのURL書き換え機能で別ドメインへルーティングさせたい

sumpay

総合スコア5

IIS

IIS(Internet Information Services)はマイクロソフト社によって開発されたwebサーバーです。Windows上で動作します。

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

web.config

web.configはASP.NETウェブアプリケーションの主な設定や構成ファイルを格納するXMLファイルです。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

0クリップ

投稿2020/03/21 22:48

編集2020/03/21 22:51

前提

現在、クライアント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)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問