【问题标题】:Ngrok > Nginx > localhost portsNgrok > Nginx > 本地主机端口
【发布时间】:2020-07-24 23:57:29
【问题描述】:

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

【问题讨论】:

    标签: node.js nginx localhost proxypass ngrok


    【解决方案1】:

    最后我放弃了 NGINX,而是运行了第三个节点服务器,它刚刚运行了 http-proxy-middleware。这似乎工作得更好,但我确实需要将两个应用程序中的链接更改为指向子文件夹,然后在新节点服务器中重写头部(例如,所有链接都从 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' : '/'} 时,生成的路径中会有两个/ 字符。
    猜你喜欢
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-12
    • 2016-04-12
    • 1970-01-01
    相关资源
    最近更新 更多