加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

nginx – 在单个域上托管多个Nodejs应用程序

发布时间:2020-12-13 21:16:19 所属栏目:Nginx 来源:网络整理
导读:我正在尝试运行多个nodejs应用程序(使用快速框架),所有应用程序都在同一个外部端口(80)上提供,但每个都在一个子目录下. 例如.我想要 NodeJsApplication1将于http://www.mydomain.com/NodeJsApplication1开始提供 NodeJsApplication2将于http://www.mydomain.

我正在尝试运行多个nodejs应用程序(使用快速框架),所有应用程序都在同一个外部端口(80)上提供,但每个都在一个子目录下.

例如.我想要…

NodeJsApplication1将于http://www.mydomain.com/NodeJsApplication1开始提供

NodeJsApplication2将于http://www.mydomain.com/NodeJsApplication2上市

等等

我已经尝试使用Nginx作为代理,其conf类似于以下内容.

server {
    listen       80;
    server_name  www.mydomain.com;

    location / {
        root   /var/www/html;
        index  index.html index.htm;
    }

    location /NodeJsApplication1/ {
        proxy_pass http://0.0.0.0:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite /NodeJsApplication1/(.*) /$1 break;
    }

    location /NodeJsApplication2/ {
        proxy_pass http://0.0.0.0:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        rewrite /NodeJsApplication2/(.*) /$1 break;
    }
}

这可以找到访问页面,但它会破坏返回页面上的所有相对URL.所有脚本和css等都指向根目录(例如www.mydomain.com/styles/main.css).

我知道我可以使用多个子域但不想沿着那条路走下去.我更喜欢使用子文件夹代理,因此它全部用软件处理,我不需要为每个应用程序设置任何DNS记录.

这有可能吗?

更新

在应用程序本身中,所有链接都使用相对路径.例如:

但在渲染时,浏览器会将它们视为“www.mydomain.com/styles/main.css”,而不是“www.mydomain.com/NodeJsApplication1/styles/main.css”.

第一个是修改NodeJS应用程序以指定完整的URL,但这需要应用程序知道nginx配置的子目录,并且它会破坏到另一个环境的可移植性.

最佳答案
我在同一个域上拥有多个MEAN应用程序时遇到了类似的问题.我想要子目录,而不必为每个应用程序创建一个新的子域.除了为您的Nginx配置添加重写:

rewrite ^/app1/(.*)$/$1 break;

您还需要设置< base>标记在索引的头部:

从https://www.digitalocean.com/community/questions/how-to-run-multiple-node-application-with-nginx-same-droplet-same-domain

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读