我想在同一台机器上为不同的项目设置多个 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 应用程序。