gpt4 book ai didi

nginx - Kubernetes nginx-ingress 入口 Controller CORS 由应用程序处理

转载 作者:行者123 更新时间:2023-12-02 11:36:15 25 4
gpt4 key购买 nike

我正在努力让 NGINX 在我的应用程序中来回代理 CORS header 。允许的来源由我的 ASP.NET Web 应用程序指定,我想将这些 header 代理回客户端。在 Kubernetes 之外运行的应用程序完美地处理了 CORS header ,因此看起来应用程序已正确配置了 CORS。据我所知,Kubernetes NGINX 入口 Controller 似乎不允许我这样做。
我想继续允许我的应用程序处理允许的来源,因此我只需要配置 NGINX 反向代理来传递所有 header 。查看文档 proxy_pass_request_headers设置为 on默认情况下。我之前对 NGINX 的理解是,这个配置设置是代理到另一台服务器时所需要的,以便向前和向后传递 header 。
注释 enable-cors并且文档中概述的围绕 CORS 的各种配置选项对我来说几乎没有用,因为它们假设 Ingress Controller 是允许来源的真实来源。在我的情况下不是。
我原以为这是允许应用程序处理 CORS 的常见请求,但我正在努力寻找解决此问题的任何方法。
非常感谢任何人都可以提供的任何帮助!
更新 - 添加图表
根据我对拓扑的理解,我创建了一个小图。这很可能是对过程的过度简化,但希望你能更容易地理解我想要实现的目标。
enter image description here

最佳答案

所以这实际上与我遇到的其他一些问题有关。 CORS header 毕竟没有被剥离。在进行大量调试后,我怀疑 CORS 模块没有在典型的 IIS 容器中配置。这是第一个问题。 https://github.com/microsoft/dotnet-framework-docker/issues/625
对于那些感兴趣的人,这里是用于添加 CORS 和 Chocolatey 的 DockerFile 行:

RUN Set-ExecutionPolicy Bypass -Scope Process -Force; `
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; `
iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')); `
choco install iis-cors-module -y
Kubernetes NGINX 没有剥离 header ,并且确实像往常一样代理所有 header 。
如果其他人将来遇到类似问题,还有其他一些有趣的花絮:
  • ASP.NET 应用程序真的不喜欢在反向代理后面。稍后可能会有其他问题引起他们的注意,但首先他们会检查一个名为 IsSecureConnection 的属性。返回 WebForms 页面时(大概类似的事情发生在 MVC 上)。脚本通常设置为与它假定的方案相匹配(http 不是 https)。这会导致现代浏览器出现错误。请参阅以下 SO 帖子:Why am I suddenly getting a "Blocked loading mixed active content" issue in Firefox? How to add meta tag to ASP.Net content page
  • 完成此操作后,如果您不幸将这些控件嵌入到您的站点中,我们就会有一些可爱的 Telerik 废话。 Telerik(Progress)以其无限的智慧为他们的 HTTPS CDN 链接使用不同的 URL。哪个不好升级。以下论坛帮助了我:https://www.telerik.com/forums/cdn-not-pulling-from-the-right-location-under-ssl
  • 关于nginx - Kubernetes nginx-ingress 入口 Controller CORS 由应用程序处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63338065/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com