将简单的网站前端和节点后端迁移到Azure Web App



这应该比实际情况容易得多,所以我想知道我是否错过了Azure平台或Visual Studio固有的一些令人尴尬的东西。

我在Visual Studio中有两个独立的项目(类似于这个链接)一个纯HTML/JS/CSS网站前端和一个node.js服务器后端管道信息。所有函数作为我期望它在VS当测试本地(节点后端请求在Azure和其他资源接收结果返回),但对我的生活似乎没有任何简单的方法发表这方面一个Azure Web应用程序和后端,因为应用程序服务将分配它自己的港口到服务器时,靴子了(实际上,没有一个静态端口#我不能敲后端)。

我错过了一些明显的东西,或者我试图做太多与Web应用程序服务,需要打破后端到虚拟机或其他服务?我已经能够按照上面的链接划分代码,但我不能ping或发布任何地方,除了由根网站设置的默认登陆页面。

编辑:现在我真的很想知道我是否在某个地方拐错了弯。一个基本的node应用程序:
var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World on port:' + port);
}).listen(port);

返回
Hello World on port:\.pipea1f43073-e979-4a8b-b4ec-ec226b4760f8

编辑2:一些挖掘导致https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening,这是信息丰富。然而,它仍然建议:

连接尝试本地地址(例如localhost, 127.0.0.1)和机器自己的IP将失败,除非如果同一沙箱中的另一个进程在目的端口上创建了侦听套接字。

所以,如果我读的是正确的进程启动我的节点服务器应该创建一个监听套接字…什么?主机可能吗?如果我在这方面取得进展,我会发布一个更新,但建议和建议仍然欢迎。

编辑3:我已经解决了我的问题,通过封装我的前端到一个Express框架项目与路由触发后端操作,但这是远远不够理想的。我没能成功启动一个服务器,它将在nodejs中监听套接字(发生各种错误代码)。如果有人有应用程序之间(在相同的虚拟目录或单独的虚拟目录中)的内部沙箱通信功能的例子,我可以根据它来构建,以确保它不是我的环境,那将是伟大的。当时间允许时,我会发布我自己的代码。

您是否正在寻找类似于以下的代码:

app.set('port', process.env.PORT || 3000);
var server = app.listen(app.get('port'), function() {
    debug('Express server listening on port ' + server.address().port);
});

我建议创建一个空节点应用程序并将其部署到Azure Web应用程序。然后将其与你要移植的应用进行比较,看看有什么不同

要将localhost:8001重定向到azutanga.com,可以使用nginx创建一个虚拟主机。要使用web应用程序的多个端口,您可以使用Express创建许多应用程序对象作为您想要使用的端口。或者使用cluster (https://nodejs.org/api/cluster.html)像java sockets一样共享TCP连接。

最新更新