Node.js Ngrok>;Nginx>;本地主机端口

Node.js Ngrok>;Nginx>;本地主机端口,node.js,nginx,localhost,proxypass,ngrok,Node.js,Nginx,Localhost,Proxypass,Ngrok,我有两个节点服务器在端口3000和4000上运行。如果我让NGINX运行并指向ngrok,有没有一种方法可以将来自ngrok子文件夹的请求重定向到每个节点服务器?例如abc123.nrgok.io/a转到端口3000,abc123.ngrok.io/b转到端口4000。每个节点服务器都有几个路由,还有一些静态html文件。最后我放弃了NGINX,而是运行了第三个节点服务器,它刚刚运行了http代理中间件。这似乎效果更好,但我确实需要更改两个应用程序中的链接以指向子文件夹,然后在新节点服务器中重写

我有两个节点服务器在端口3000和4000上运行。如果我让NGINX运行并指向ngrok,有没有一种方法可以将来自ngrok子文件夹的请求重定向到每个节点服务器?例如abc123.nrgok.io/a转到端口3000,abc123.ngrok.io/b转到端口4000。每个节点服务器都有几个路由,还有一些静态html文件。

最后我放弃了NGINX,而是运行了第三个节点服务器,它刚刚运行了http代理中间件。这似乎效果更好,但我确实需要更改两个应用程序中的链接以指向子文件夹,然后在新节点服务器中重写头部(例如所有链接从style.css到/serverOne/style.css,然后代理中间件去掉/serverOne位)。下面是第三个节点服务器的代码

const http = require('http'),
    express = require('express'),
    { createProxyMiddleware } = require('http-proxy-middleware')
const app = express()

app.use('/serverOne', createProxyMiddleware({target:'http://localhost:4000', changeOrigin: true, pathRewrite: {'^/serverOne' : '/'}}))
app.use('/serverTwo', createProxyMiddleware({target:'http://localhost:3000', changeOrigin: true, pathRewrite: {'^/serverTwo' : '/'}))

app.listen(2000);

最后,我放弃了NGINX,而是运行了第三个节点服务器,该服务器刚刚运行了http代理中间件。这似乎效果更好,但我确实需要更改两个应用程序中的链接以指向子文件夹,然后在新节点服务器中重写头部(例如所有链接从style.css到/serverOne/style.css,然后代理中间件去掉/serverOne位)。下面是第三个节点服务器的代码

const http = require('http'),
    express = require('express'),
    { createProxyMiddleware } = require('http-proxy-middleware')
const app = express()

app.use('/serverOne', createProxyMiddleware({target:'http://localhost:4000', changeOrigin: true, pathRewrite: {'^/serverOne' : '/'}}))
app.use('/serverTwo', createProxyMiddleware({target:'http://localhost:3000', changeOrigin: true, pathRewrite: {'^/serverTwo' : '/'}))

app.listen(2000);

这是否意味着,如果没有第三个节点服务器,您的两个节点服务器现在将无法工作,而第三个节点服务器可以重定向?应该有一种方法可以在不改变链接的情况下实现同样的效果。我正在尝试将abc123.nrgok.io/a和abc123.nrgok.io/b重定向到不同的本地IP,在那里我有运行服务器固件的ESP32微控制器。它应该是
pathRewrite:{'^/serverOne':'}
pathRewrite:{'^/serverOne/':'/'}
。使用
pathRewrite:{'^/serverOne':'/'}
时,生成的路径中将有两个
/
字符。这是否意味着如果没有第三个节点服务器(它执行重定向),您的两个节点服务器现在将无法工作?应该有一种方法可以在不改变链接的情况下实现同样的效果。我正在尝试将abc123.nrgok.io/a和abc123.nrgok.io/b重定向到不同的本地IP,在那里我有运行服务器固件的ESP32微控制器。它应该是
pathRewrite:{'^/serverOne':'}
pathRewrite:{'^/serverOne/':'/'}
。使用
pathRewrite:{'^/serverOne':'/'}
时,结果路径中将有两个
/
字符。