如何在 Elastic beanstalk 上托管多个 Node js 应用程序?

如何在 Elastic beanstalk 上托管多个 Node js 应用程序?

我正在尝试建立一个链接到多个 nodejs 应用程序的网站。

www.example.com/app1
www.example.com/app2

app1 和 app2 都托管在 AWS Elastic Beanstalk 上。

http://app1.us-west-2.elasticbeanstalk.com
http://app2.us-west-2.elasticbeanstalk.com

如何在不更改浏览器中的 URL 的情况下将 example.com 上的子目录重定向到这些应用程序?

我是否应该在 EBS 上创建第三个应用程序并将 example.com 与其关联。然后在其上使用 nginx 重定向到特定应用程序?

抱歉说得不清楚。我对这个东西还不熟悉。

答案1

你可以通过 来完成nginx。你的配置应该如下所示:

server {
    listen       80;

    location /app1 {
        proxy_pass http://app1.us-west-2.elasticbeanstalk.com:80;
    }

    location /app2 {
        proxy_pass http://app2.us-west-2.elasticbeanstalk.com:80;
    }
}

答案2

@Alexander 谢谢。虽然我遇到了静态文件获取 404 的问题,但这个方法奏效了:https://stackoverflow.com/questions/36849456/nginx-reverse-proxy-404-on-static-files

if ($uri ~ app1/) {
  break;
}

if ($http_referer ~ app1/ ) {
  rewrite (.*) /app1/$1 redirect;
}

location /app1/ {
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_set_header    X-Real-IP $remote_addr;
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://app1.compute.amazonaws.com:3001/ ;
}

尽管如链接中所述。它不适用于 POST 查询 :/

相关内容