我正在用一个小团队开发一个web应用程序,经过研究和研究,我们发现将后端项目和前端项目分开是一个很好的实践。因此,我们将把后端开发为带有hapijs和mysql数据库的REST,以及使用angularjs的前端。
但是在生产环境中,它们必须在同一台服务器上,对吗?如果它们位于单独的存储库中,我们如何将它们部署到同一个服务器上?
我们是一个相当新的团队,开始了我们在网络开发方面的冒险,所以我们正在学习很多东西来做正确的事情。
我们的技术栈将是:
我们将使用微软的天青托管我们的网络应用程序。
谢谢你的回答和帮助。
发布于 2016-02-17 01:10:24
他们不必在同一台服务器上。将后端放在不同的服务器中是非常好的,如果您需要扩展后端/前端,而不是另一个服务器,这也非常方便。
有几种可能性:
app.all(['/api/*', '/fe/*'], function(req, res) {
console.log('[' + req.method + ']: ' + PROXY + req.url);
req.pipe(request({
url: PROXY + req.url,
method: req.method,
body: req.body,
rejectUnauthorized: false,
withCredentials: true
}))
.on('error', function(e) {
res.status(500).send(e);
})
.pipe(res);
});其中PROXY_URL是后端服务器的url/ip。还没有在hapi.js中这样做,但也应该是可能的。
我相信还有更多的选择,这些是我所熟悉的。
发布于 2020-01-20 13:06:22
作为一个初学者团队,你可能会遇到这么多问题。最好的做法是将前端和后端分离为单独的单元。这将导致更好的完整堆栈开发过程。这个https://www.freecodecamp.org/news/lessons-learned-from-deploying-my-first-full-stack-web-application-34f94ec0a286/
本文解释了使用react作为前端,将Express js用作后端的过程。它是为初学者精心设计的。它包括对你的问题的详细解释。
发布于 2016-03-01 22:22:10
正如你们现在开始的那样,我认为您可以通过使用hapi创建两个服务器实例来处理这个问题。这满足了生产中只有一台服务器的需求:
const server = new Hapi.Server();
server.connection({ port: 80, labels: 'front-end' });
server.connection({ port: 8080, labels: 'api' });这是非常容易实现的,然而,它也有一个缺点:无论何时推出更新,您都需要接受客户端和服务器应用程序的停机时间。
您可以在这篇文章中找到更多信息:https://futurestud.io/blog/hapi-how-to-run-separate-frontend-and-backend-servers-within-one-project
在部署方面,无论您使用什么来构建一个版本(持续集成工具、手动脚本等等)。可以推到天蓝色:https://azure.microsoft.com/en-us/documentation/articles/web-sites-publish-source-control。例如,手动脚本将从两个单独的存储库(前端和后端)获取代码,复制相关文件,更新配置值,并将最终结果推送到git。
https://stackoverflow.com/questions/35445964
复制相似问题