【发布时间】:2023-04-05 08:16:02
【问题描述】:
所以我目前正在研究为一个新的、相当大规模的项目采用哪些技术/库等......
鉴于我的团队对 NodeJS、JavaScript、Express 和 Jade(现为 Pug)的了解,我/我们希望在新项目中采用这些。
然而,目前的症结在于使用路由中间件在 Express 下提供 HTML 的方式。
我们都知道 Node/Express 在提供静态文件方面做得很差,这就是 Nginx 的用武之地。我可以理解甚至实现一个 Nginx 配置来处理 img/js/css 静态文件的服务,但是我想知道的是这个......
是否可以将使用 Express 路由的 HTML 服务(由 Jade/Pug 生成)移交给 Nginx 以提高性能?还是如果您使用 Express 路由,您必须接受 HTML 文件的服务会很慢?
说实话,我不太确定这一切是如何结合在一起的,所以希望有人能对此有所了解;-)
在此先谢谢大家
【问题讨论】:
-
如果您的 HTML 是静态的,那么您不需要 Node,只需从 nginx 提供它即可。如果您的 HTML 是动态的,那么您需要一种服务器端语言来生成它,即 Node.js。在这方面,Node 与任何其他服务器端语言没有什么不同。
-
nginx 是一个负载均衡器。多个节点实例将在私有端口(3000、8000 或其他)上的 1 个或多个服务器上运行,并且 nginx 将面向公众并在它们之间进行负载平衡。
-
谢谢,不...内容将是动态的。数据通过路由传入和渲染。那么,我是否正确地认为我们只需要接受 Node 在提供 HTML 方面的缓慢性? Node 在提供动态 HTML 页面方面与 PHP 相比如何? :-/
-
@AdamJeffers 抱歉,但是.. 虽然问题是关于静态文件,但您的评论是关于动态文件。如果它们是动态的,您可以考虑通过 Varnish 或其他一些逻辑进行缓存;如果它们是完全静态的,您可以避免接触 node.js 并通过 Nginx 发送它;然而,我没有发现 express 的静态文件服务 很慢。
-
您可以使用 nginx 提供静态 HTML。但是,如果 HTML 是在 Express 中使用 Jade 动态生成的,那么您不能使用 nginx 来提供它,因为内容是在 Express 中创建的。
标签: javascript node.js express nginx pug