【发布时间】:2021-08-07 00:55:14
【问题描述】:
当我们在本地运行良好时,将我们的应用发布到 Azure Web 应用服务时,尝试使用 puppeteer js 导出 pdf 时遇到问题。
一旦 puppeteer 在访问将要导出 pdf 的页面时启动了无头浏览器,我们会得到一个文件,该文件显示一个带有 403 禁止访问消息的蓝页。
它正在导出的网站是来自我们应用托管的同一域的公共视图。此站点没有身份验证,我们认为问题与试图阻止无头浏览器访问服务器的 Azure 防火墙机制有关?
我们的环境在 Docker 容器下使用 Ubuntu 20.04。由于 Azure 基础架构中的 Docker 容器,我们无法让 puppeteer 运行,但是一旦正确安装了所有依赖项,我们就无法从同一域成功导出 pdf(我们尝试从 google.com 等外部域导出 pdf 并且工作正常)。
Azure 是否有可能阻止对无头浏览器的访问,或者这是我们从 azure 门户跳过的配置?
我们尝试以多种不同的方式启动 puppeteer 浏览器,例如无头或没有安全沙箱,或使用外部 chrome 二进制文件,如 await puppeteer.connect({ browserWSEndpoint: 'wss://chrome.browserless.io/' }),我们也尝试使用 puppeteer-extra-plugin-stealth 进行无头检测,并尝试使用 puppeteer-extra-plugin-anonymize-ua 匿名化用户代理。到目前为止,这些都没有奏效。这是我们的结果:
【问题讨论】:
-
如果我的回复有帮助,请告诉我,谢谢。
-
非常感谢,Doris,我在您的回答中留下了评论。
标签: azure azure-web-app-service puppeteer