nginx nodejs+pm2 return 无法获取 /pm2

nginx nodejs+pm2 return connot GET /pm2

我安装了 nginx 来为多个 nodejs 应用程序提供服务

在我的服务器上,我有 2 个应用程序 myapp 和 pm2-web

nginx 配置如下所示

http {
    # .... logs, gzip ... etc
    server {
        location / {
           proxy_pass http://localhost:5000;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
        }

        location /pm2 {
           proxy_pass http://localhost:9000;
           proxy_http_version 1.1;
           proxy_set_header Upgrade $http_upgrade;
           proxy_set_header Connection 'upgrade';
           proxy_set_header Host $host;
           proxy_cache_bypass $http_upgrade;
        }

    }

我的应用程序运行正常,但是当我尝试访问时 /pm2

我收到以下错误

Cannot GET /pm2

当 pm2-web 不是 运行 时,我得到 502 Bad Gateway

但我仍然可以从 http://IP:9000

访问 pm2

URL 的 /pm2 部分正在传递到您的 Node 应用程序,它不匹配任何路径。

即,您的 pm2 应用程序在 9000 上 运行,但您正在尝试访问不存在的 http://localhost:9000/pm2

在您的代理传递 URL 中包含尾部斜线以确保不包含 /pm2

location /pm2 {
   proxy_pass http://localhost:9000/;
   proxy_http_version 1.1;
   proxy_set_header Upgrade $http_upgrade;
   proxy_set_header Connection 'upgrade';
   proxy_set_header Host $host;
   proxy_cache_bypass $http_upgrade;
}