如何托管仅web.config的服务器?

时间:2018-06-25 13:31:05

标签: web-config proxy-server

上下文

看到这个问题:Enable CORS on Azure Service Bus Namespace

真的,我想有一个仅前端的ReactJS应用程序,该应用程序与Azure API对话,并将结果的一部分呈现到屏幕上。然后从用户那里获取输入,并将其发送回Azure API。冲洗并重复。 不幸的是,CORS几乎有很多规则,您不能[1]覆盖ServiceBus命名空间的CORS规则。

因此,建议的解决方案是瘦代理服务器,代理Azure API,以规避CORS。

(非常欢迎您对此问题的替代解决方案!)

[1]读:我目前看不到任何方式,我的Google搜索也看不到。

问题

另一个问题上的用户提出了相关的web.config文件,因此现在我想创建该代理服务器。我真的不希望该服务器做任何其他的事情,我希望它尽可能透明。

设置该服务器的最简单方法是什么?


我有点希望我能够做类似的事情: “告诉Azure我想要一个Web服务器,并将该web.config文本粘贴/上传到Azure门户中”?

如果有意义的话,当前我的堆栈实际上只有npm和JS Create-React-App模板的堆栈。我在想我们也将网站托管在Azure中。

1 个答案:

答案 0 :(得分:0)

我可以使用它,而且非常轻松-Azure可以JustDoThis。

记录下我在这里为自己写的笔记,以备将来失去的流浪者:)


如链接的问题所述,Azure服务器没有(也不能)启用CORS,因此我们需要以某种方式绕开它。该方法是创建一个ReverseProxy服务器,该服务器接受请求,将其转发到Azure,接收响应,添加相关的CORS标头,然后将其返回给调用方。

此Microsoft博客:https://blogs.msdn.microsoft.com/mihansen/2018/04/18/reverse-proxy-with-basic-authentication-in-azure-web-app/

除了跳过“基本身份验证”步骤(步骤#3和#4)外,其余步骤
  • 第1步:创建一个新的Azure Web应用
  • 第2步:添加applicationHost.xdt文件(在\Home\site中)
  • 第2a步:使用提供的模板设置.xdt文件的内容(我认为这实际上是一个web.config文件吗?
<?xml version="1.0"?>  
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">  
<system.webServer>  
    <proxy xdt:Transform="InsertIfMissing" enabled="true" preserveHostHeader="false" reverseRewriteHostInResponseHeaders="false" />  
    </system.webServer>  
</configuration>
  • 跳过步骤3和4(与身份验证相关,如果只是重定向,则不需要。)
  • 第5步:更新/修改/创建重写规则

步骤2是通过KUDU实现的,可在此处访问:

https://yourazuresitedomain.scm.azurewebsites.net/

一些有关KUDU是什么以及如何使用的链接: