【发布时间】:2020-12-03 18:02:05
【问题描述】:
我已经在我的 Debian VPS 上使用 Nginx 来托管我的网站已有一段时间了,我想在同一个 Droplet 上运行 NodeJS 应用程序,所以我查看了我的选项并了解了 ExpressJS。
据我了解,它的行为类似于 Web 服务器,但在 JS 中(?)
我查看了入门教程并在我的 Windows PC 上运行了一些东西,但我想知道我是否可以在我的 Debian VPS 上同时运行 ExpressJS 服务器和 nginx 服务器,在同一个端口上,无需搞砸一切? (我不想删除我当前的网站)
我想要它,所以 Nginx 可用于任何目录,除了 ExpressJS 的目录,它类似于“var/www/html/expressapp/...”。
对不起,我缺乏知识,但我很想了解如何同时使用这两种方法
提前致谢!
【问题讨论】:
-
目前尚不清楚您要做什么,但 NGINX 可以配置为位于任何服务器(包括 Express)前面的代理。因此,您可以对其进行配置,以便某些 URL 在 NGINX 中做一件事(例如提供静态内容),而其他 URL 则转到您的快速服务器。
var/www/html/expressapp/..对我来说没有多大意义,因为请求要么被转发到你的 Express 服务器,要么 NGINX 用它做其他事情。 -
NGINX 具有(在其配置中)丰富的 URL 匹配逻辑,因此您可以决定希望 NGINX 对任何 URL 做什么,例如从位置 A 提供静态内容或从位置 B 提供静态内容或转发到主机 Y 上的端口 X。这些功能都在 NGINX 配置文档中。
-
对不起,我弄错了,我认为 nginx 是这里的 Web 服务器,但实际上我正在运行 apache,所以真正的问题是“我可以同时运行 apache 和 expressjs”吗?你给我的答案是“是的,nginx 允许你选择是使用 express 还是 apache 来选择 url”,对吗?感谢您的回复!
-
nginx 可以服务多个角色。它可以是 Web 服务器并直接提供静态内容。或者,它可以是某些 URL 的代理,并将与该 URL 模式匹配的请求转发到您的应用服务器。
-
感谢您的帮助和解释,我搞定了 :)
标签: node.js express nginx debian