路由到同一台机器上的各个 node.js 服务器

路由到同一台机器上的各个 node.js 服务器

我想在同一台机器上为不同的项目设置多个 node.js 服务器(但监听不同的端口)(这样我就可以拉下任何一个来编辑代码而不会影响其他的)。但是我希望能够从浏览器访问这些 Web 应用程序而无需输入端口号,而是将不同的 URL 映射到不同的端口:例如 45.23.12.01/app -> 45.23.12.01:8001。

我考虑过使用节点 http 代理为此,但它还不支持 SSL。我的直觉是 nginx 可能是最合适的。我以前从未设置过 nginx - 我需要做什么配置?我看到的配置文件示例仅处理子域,而我没有。

或者,是否有更好的(稳定、无麻烦的)方法来在同一个 IP 地址下托管多个应用程序?

答案1

首先阅读维基文档。它非常详尽,并包含示例。我不会给你完整的 nginx 配置,但这是与你的问题相关的部分。

server {
    listen 80;
    server_name example.com;

    location /foo {
        proxy_pass http://localhost:9000;
    }

    location /bar {
        proxy_pass http://localhost:9001;
    }

    location /baz {
        proxy_pass http://localhost:9002;
    }
}

那里发生了什么应该很清楚。每个地点将指定的 URI 代理到适当的 node.js 后端。

答案2

nginx 可能是最佳选择。至少,这是我在服务器上运行的。示例配置/说明可在此处找到:https://blog.noort.be/2011/03/07/node-js-on-nginx.html

您基本上在 nginx 中设置不同的站点,每个站点将其流量路由到在不同端口上运行的 nodejs 应用程序。

相关内容