azure上的prerender.io node.js prerender服务器
我在Azure网站上设置prerender.io渲染服务器时遇到问题 我在VS2015中创建了一个空白的Node.js Azure项目,Node.js服务器启动良好,并在本地呈现内容良好 问题是,当我部署到Azure时,我收到一个内部服务器错误,如下所示:azure上的prerender.io node.js prerender服务器,node.js,azure,prerender,Node.js,Azure,Prerender,我在Azure网站上设置prerender.io渲染服务器时遇到问题 我在VS2015中创建了一个空白的Node.js Azure项目,Node.js服务器启动良好,并在本地呈现内容良好 问题是,当我部署到Azure时,我收到一个内部服务器错误,如下所示: Application has thrown an uncaught exception and is terminated: Error: write ENOTSUP at exports._errnoException (util
Application has thrown an uncaught exception and is terminated:
Error: write ENOTSUP
at exports._errnoException (util.js:874:11)
at ChildProcess.target._send (internal/child_process.js:606:18)
at ChildProcess.target.send (internal/child_process.js:507:12)
at sendHelper (cluster.js:699:8)
at send (cluster.js:501:5)
at cluster.js:477:7
at SharedHandle.add (cluster.js:82:3)
at queryServer (cluster.js:469:12)
at Worker.onmessage (cluster.js:425:7)
at ChildProcess.<anonymous> (cluster.js:713:8)
var prerender = require('./lib');
var server = prerender({
workers: process.env.PRERENDER_NUM_WORKERS,
iterations: process.env.PRERENDER_NUM_ITERATIONS
});
server.use(prerender.sendPrerenderHeader());
// server.use(prerender.basicAuth());
// server.use(prerender.whitelist());
server.use(prerender.blacklist());
// server.use(prerender.logger());
server.use(prerender.removeScriptTags());
server.use(prerender.httpHeaders());
// server.use(prerender.inMemoryHtmlCache());
// server.use(prerender.s3HtmlCache());
server.start()
应用程序引发了未捕获的异常并被终止:
错误:写入ENOTSUP
导出时出现异常(util.js:874:11)
在ChildProcess.target.\u发送(internal/child\u process.js:606:18)
在ChildProcess.target.send(内部/child_process.js:507:12)
在sendHelper(cluster.js:699:8)
发送时(cluster.js:501:5)
在cluster.js:477:7
在SharedHandle.add(cluster.js:82:3)
在queryServer上(cluster.js:469:12)
在Worker.onmessage(cluster.js:425:7)
在这个过程中。(cluster.js:713:8)
从这个错误中,我只能怀疑请求和集群机制存在问题。我通过电子邮件发送了prerender.io,以了解他们是否了解正在发生的事情。我也在网上到处搜索,但似乎找不到任何类似的问题作为参考
所有node.js项目默认值保持不变。我只将prerender.io node.js代码导入到vs2015项目中。正如我所指出的,它在本地工作。通过测试,我发现我可以使用powershell在本地和Azure网站上运行prerender.IO 我安装了包并使用了server.js代码,如下所示:
Application has thrown an uncaught exception and is terminated:
Error: write ENOTSUP
at exports._errnoException (util.js:874:11)
at ChildProcess.target._send (internal/child_process.js:606:18)
at ChildProcess.target.send (internal/child_process.js:507:12)
at sendHelper (cluster.js:699:8)
at send (cluster.js:501:5)
at cluster.js:477:7
at SharedHandle.add (cluster.js:82:3)
at queryServer (cluster.js:469:12)
at Worker.onmessage (cluster.js:425:7)
at ChildProcess.<anonymous> (cluster.js:713:8)
var prerender = require('./lib');
var server = prerender({
workers: process.env.PRERENDER_NUM_WORKERS,
iterations: process.env.PRERENDER_NUM_ITERATIONS
});
server.use(prerender.sendPrerenderHeader());
// server.use(prerender.basicAuth());
// server.use(prerender.whitelist());
server.use(prerender.blacklist());
// server.use(prerender.logger());
server.use(prerender.removeScriptTags());
server.use(prerender.httpHeaders());
// server.use(prerender.inMemoryHtmlCache());
// server.use(prerender.s3HtmlCache());
server.start()
然后,我在Azure Web App服务上部署了这个项目。我使用powershell在kudu面板中运行server.js,如下图所示:
还有一个问题,你用的是哪个版本?我使用的node.js版本是V4.2.3。通过测试,我发现我可以使用powershell在本地和Azure网站上运行prerender.IO 我安装了包并使用了server.js代码,如下所示:
Application has thrown an uncaught exception and is terminated:
Error: write ENOTSUP
at exports._errnoException (util.js:874:11)
at ChildProcess.target._send (internal/child_process.js:606:18)
at ChildProcess.target.send (internal/child_process.js:507:12)
at sendHelper (cluster.js:699:8)
at send (cluster.js:501:5)
at cluster.js:477:7
at SharedHandle.add (cluster.js:82:3)
at queryServer (cluster.js:469:12)
at Worker.onmessage (cluster.js:425:7)
at ChildProcess.<anonymous> (cluster.js:713:8)
var prerender = require('./lib');
var server = prerender({
workers: process.env.PRERENDER_NUM_WORKERS,
iterations: process.env.PRERENDER_NUM_ITERATIONS
});
server.use(prerender.sendPrerenderHeader());
// server.use(prerender.basicAuth());
// server.use(prerender.whitelist());
server.use(prerender.blacklist());
// server.use(prerender.logger());
server.use(prerender.removeScriptTags());
server.use(prerender.httpHeaders());
// server.use(prerender.inMemoryHtmlCache());
// server.use(prerender.s3HtmlCache());
server.start()
然后,我在Azure Web App服务上部署了这个项目。我使用powershell在kudu面板中运行server.js,如下图所示:
还有一个问题,你用的是哪个版本?我使用的node.js版本是V4.2.3
您是否运行了他们的中间件或渲染服务器?我试图运行渲染服务器,当时我在节点6.2上。我在一个紧迫的期限内完成了一个项目,所以我们走了VM的路
感谢您的帖子提出此问题,我想确认Azure web app当前不支持Prerender,因为Prerender使用不支持命名管道连接的群集模块,而Azure web app使用命名管道连接将iis与node.exe连接。我们将继续研究这个问题,并在找到解决方法和解决方案后更新此线程。如果您有任何进一步的问题,请随时告诉我
您是否运行了他们的中间件或渲染服务器?我试图运行渲染服务器,当时我在节点6.2上。我在一个紧迫的期限内完成了一个项目,所以我们走了VM的路
感谢您的帖子提出此问题,我想确认Azure web app当前不支持Prerender,因为Prerender使用不支持命名管道连接的群集模块,而Azure web app使用命名管道连接将iis与node.exe连接。我们将继续研究这个问题,并在找到解决方法和解决方案后更新此线程。如果您有任何进一步的问题,请随时告诉我。prerender包/中间件是否与后端的任何服务器通信?如果是这样,可能存在防火墙或连接问题。我猜您正在azure web apps中发布此网站。我确定IISNode不支持群集,正如IISNode作者在此处所述。下面是一个GitHub对话,讨论prerender包/中间件是否与后端的任何服务器通信?如果是这样,可能存在防火墙或连接问题。我猜您正在azure web apps中发布此网站。我确定IISNode不支持群集,正如IISNode作者在此处所述。下面是一个GitHub对话,您是运行了他们的中间件还是渲染服务器?我试图运行渲染服务器,当时我在节点6.2上。我在一个紧迫的期限内完成了一个项目,所以我们选择了虚拟机方式,因为我没有时间开始修改开源项目。有趣的评论。嗨,威尔,你运行了他们的中间件还是渲染服务器?我试图运行渲染服务器,当时我在节点6.2上。我在一个紧迫的期限内完成了一个项目,所以我们选择了虚拟机方式,因为我没有时间开始修改开源项目。不过有意思的评论。