Reverse proxy 反向代理背后的Acumatica导致GetFile.ashx出现问题

Reverse proxy 反向代理背后的Acumatica导致GetFile.ashx出现问题,reverse-proxy,acumatica,Reverse Proxy,Acumatica,我正在一个反向代理后面运行Acumatica的dev实例,该代理由IIS和应用程序请求路由3.0组成 在大多数情况下,运行和行为与预期一致,但我对图像有问题,例如徽标、库存图片等。问题是,在首次加载时,交付给客户端的url是一个绝对url。如果在分支之间移动,则徽标url将切换到相对url,图像将正确显示 如果您想要一个例子,这里是一个测试实例的url 用户:管理员 通过:P@ssword1 登录时,徽标将有一个断开的链接图标 如果您切换到一个新分支,则会显示徽标。 如果切换回以徽标开始的分

我正在一个反向代理后面运行Acumatica的dev实例,该代理由IIS和应用程序请求路由3.0组成 在大多数情况下,运行和行为与预期一致,但我对图像有问题,例如徽标、库存图片等。问题是,在首次加载时,交付给客户端的url是一个绝对url。如果在分支之间移动,则徽标url将切换到相对url,图像将正确显示

如果您想要一个例子,这里是一个测试实例的url

用户:管理员

通过:P@ssword1

登录时,徽标将有一个断开的链接图标 如果您切换到一个新分支,则会显示徽标。

如果切换回以徽标开始的分支,徽标仍会显示良好。这只是一个初始负载问题


想法?

这里的问题是,绝对url不是使用当前url模式构建的,而是使用站点调用的模式。由于您是通过http从反向代理调用站点,因此为图像生成的链接也是http,因此无法加载。此外,当您通过https上的站点调用http内容时,您会收到安全警告。 如果您只是在浏览器中编辑url架构,则图像将显示-

至少有两个好的解决方案可供建议:

  • 将反向代理指向HTTPS站点。这是一个非常简单的解决方案,但是如果您的反向代理不喜欢自签名的IIS证书,可能会在配置中带来一些麻烦。它也不允许分析请求,因为所有传输都将被加密

  • 另一个解决方案稍微复杂一些,它将使您能够调用http站点,并使其认为您正在调用https。为此,您需要在反向代理配置中将标头设置为https。 不幸的是,我们不熟悉应用程序请求路由3.0,为了更好地理解NginX代理位置,将如下所示:

    location ~ ^/(MySite){
        proxy_pass http://localhost:82;           //note, you are calling https here
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-Proto https;  //here you are tricking the site
    }