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

How can I host a web.config-only server?

上下文

看到这个问题:

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

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

(非常欢迎这个问题的替代解决方案!)

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

问题

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

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


我有点希望我能够做类似的事情: "Tell Azure that I want a webserver, and paste/upload that web.config text into the Azure Portal"?

如果相关的话,目前我的堆栈实际上除了 npm 和 JS Create-React-App 模板的堆栈之外什么都没有。我想我们也会在 Azure 中托管网站。

我让它工作了,而且非常轻松 - Azure 可以 JustDoThis。

记录我在这里为自己写的笔记,以供将来迷路的流浪者:)


如链接问题中所述,Azure 服务器不(也不能)启用 CORS,因此我们需要以某种方式规避它。该方法是创建一个 ReverseProxy 服务器,它接受请求,将其转发到 Azure,接收响应,添加相关的 CORS headers 并 returns 将其发送给调用者。

除了跳过 "Basic Authentication" 步骤(第 3 步和第 4 步)之外,其他步骤均来自 Microsoft 博客:https://blogs.msdn.microsoft.com/mihansen/2018/04/18/reverse-proxy-with-basic-authentication-in-azure-web-app/

  • 第 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 步:Update/Modify/Create 重写规则

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

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

关于 KUD​​U 是什么以及如何使用它的一些链接: