Node.js 我可以同时运行ExpressJS和Nginx吗?

Node.js 我可以同时运行ExpressJS和Nginx吗?,node.js,express,nginx,debian,Node.js,Express,Nginx,Debian,我在Debian VPS上使用Nginx来托管我的网站已经有一段时间了,我想在同一个平台上运行一个NodeJS应用程序,所以我查看了我的选项并了解了ExpressJS 据我所知,它的行为就像一个web服务器,但在JS(?) 我已经阅读了入门教程,并在我的Windows PC上运行了一些东西,但我想知道我是否可以在Debian VPS上的同一端口上同时运行ExpressJS服务器和nginx服务器,而不会把一切都搞糟?(我不想删除我当前的网站) 我想要它,所以Nginx用于除ExpressJS目录

我在Debian VPS上使用Nginx来托管我的网站已经有一段时间了,我想在同一个平台上运行一个NodeJS应用程序,所以我查看了我的选项并了解了ExpressJS

据我所知,它的行为就像一个web服务器,但在JS(?)

我已经阅读了入门教程,并在我的Windows PC上运行了一些东西,但我想知道我是否可以在Debian VPS上的同一端口上同时运行ExpressJS服务器和nginx服务器,而不会把一切都搞糟?(我不想删除我当前的网站)

我想要它,所以Nginx用于除ExpressJS目录之外的任何目录,该目录类似于“var/www/html/expressapp/…”

对不起,我缺乏知识,但我想知道如何同时使用这两种方法


提前谢谢

当然可以:您只需在nginx上设置一个上游配置,并将其指向express正在使用的端口,这样,流向nodejs应用程序的流量将自动重新路由到express服务器

在我的例子中,我使用express提供api,基本上我只是将通过/api的所有内容指向我的节点服务器

有人在这里做了一个很好的样本:


这里的关键元素是“上游”和代理选项。

不清楚您到底想做什么,但NGINX可以配置为位于任何服务器(包括Express)前面的代理。因此,您可以对其进行配置,使某些URL在NGINX中做一件事(如服务静态内容),而其他URL则转到您的express服务器。
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模式匹配的请求转发到您的应用程序服务器。感谢您的帮助和解释,我已使其正常工作:)谢谢!我让它工作了。下面是我在/etc/nginx/sites available/default中添加的内容:`location/someurl{proxy_pass;}你介意接受这个答案吗,它可能会帮助其他人^^